美文网首页
数据结构(广义表)

数据结构(广义表)

作者: yinxmm | 来源:发表于2018-09-29 22:45 被阅读0次

1. 广义表的定义

广义表简称表,它是线性表的推广。一个广义表是n(n>=0)个元素的一个有限序列,当n=0时称为空表。在一个非空的广义表中,其元素可以是某一确定类型的对象,这种元素被称为单元素;也可以是由单元素构成的表,这种元素被称为子表或表元素。显然,广义表的定义是递归的,广义表是线性表的递归数据结构。
设ai为广义表的第i个元素,则广义表的一般表示与线性表相同。
(a1,a2,a3,a4......,an)
其中,n表示广义表的长度,即广义表中所含元素的个数,n>=0。
同线性表一样,也可以用一个标识符来命名一个广义表,例如:用LS命名上面的广义表,则为:LS(a1,a2,a3...an+1,an)。在广义表的讨论中,为了把单元素同表元素区别开来,一般用小写字母表示表元素,用大写字母表示表。

例如:
A=()
B=(e)
C=(a,(b,c,d))
D=(A,B,C)=((),(e),(a,(b,c,d)))
E=((a,(a,b),((a,b),c)))

  • A是一个空表,不含任何元素,其长度为0;
  • B是一个只含有单元素e的表,其长度为1;
  • C中有两个元素,第1个元素是单元素a,第2个元素是表元素(a,b,c),C的长度为2;
  • D中有3个元素,其中每个元素又都是一个表,D的长度为3;
  • E中只含有一个元素,该元素是一个表,该表中含3个元素,其中后两个元素又都是表。

2. 广义表的存储结构

广义表是一种递归的数据结构,因此很难为每个广义表分配固定大小的存储空间,所以其存储结构只好采用动态链接结构。

(1) 头尾链表的存储结构

(2) 扩展线性链表的存储结构

相关文章

  • 广义表

    广义表的定义 广义表是线性表的推广,是一种非线性的数据结构,也有人称其为列表。广义表的实现主要应用递归,通过广义表...

  • 数据结构(广义表)

    1. 广义表的定义 广义表简称表,它是线性表的推广。一个广义表是n(n>=0)个元素的一个有限序列,当n=0时称为...

  • #数据结构#—广义表

    广义表 广义表,又称列表,也是一种线性存储结构。同数组类似,广义表中既可以存储不可再分的元素,也可以存储广义表,记...

  • 广义表

    广义表广义表的定义广义表的存储结构广义表的M元多项式广义表的递归算法 一、广义表的定义:广义表(Lists,又称列...

  • 数据结构之广义表

    定义 广义表是线性表的推广,线性表中的元素都是原子的单元素,而广义表中的元素可以是原子的单元素,也可以是一个子广义...

  • 数据结构 串 数组 广义表

    概述 串:字符串的简称,串是一种特殊的线性表,特殊在其数据元素都是一个字符。 数组和广义表可以看做是线性表的扩充,...

  • 深入Python数据结构(一)——list

    1. 前言 列表是Python中最基本的数据结构。类似于数据结构中的广义表[?]。列表是最常用的Python数据类...

  • 数据结构

    广义表 数据结构中,广义表是一种比较重要的结构,至少在我看来 更新一下,上面的代码除了一点点问题,原因就是那几个i...

  • 广义表

    是由零个或多个原子或子表组成的优先序列,是线性表的推广。 广义表的存储结构 广义表中的数据元素可以具有不同的结构,...

  • 广义表

    1. 广义表:元素为原子项或广义表 A = () —— 空表,长度为0B = (e) —— 表B只有一个原子e,...

网友评论

      本文标题:数据结构(广义表)

      本文链接:https://www.haomeiwen.com/subject/nscioftx.html