广义表

1、广义表的相关概念

---- 广义表是线性表的推广,也称为列表(Lists),广义表一般记作:LS=(a1,a2,a3,...,an),其中LS是广义表的名称,n是长度。

线性表的元素是单个元素,而在广义表中,a1可以是单个元素,也可以是广义表,分别称为广义表LS的原子(Atom)子表(Glist).

一般用大写字母表示广义表,小写字母表示单个元素。当LS非空时,称第一个元素a1为LS的表头(Head),其余元素组成的表

(a2,a3,...,an)是LS的表尾(Tail)。下面是广义表的一些例子:

-- 1)A =():A是空表,长度为0.

-- 2)B =(e):B表只有一个元素e,长度是1.

-- 3)C =(a,(b,c)):C有两个元素,一个是单元素a,另一个是子表(b,c)。

-- 4)D =(A,B,C)=((),(e),(a,(b,c))):D有三个元素,都是子表。

-- 5)E = (a,E):E是一个递归的表,长度为2.

---- 结论

-- 1)广义表的元素可以是子表,而子表的元素也可以是子表,由此,广义表是一个多层的结构。

-- 2)广义表可用其他广义表来表示,即共享广义表。在上述例子中,广义表A、B、C都是D的子表,因此可以在D中通过广义表的

名字来引用,如D =(A,B,C)。

-- 3)广义表可以是一个递归的表。

广义表中括号嵌套的最大层数称为广义表的深度。如上例中,A的深度是0,B的深度是1,C的深度是2,D的深度是3.

2、广义表的存储结构

---- 由于广义表中的数据元素可以具有不同的结构,因此很难用顺序存储的方式,通常采用链式存储结构。


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dongyanxia1000/article/details/52349810
个人分类: 数据结构
上一篇AMBA规范之AHB/APB
下一篇C++错题(8-30)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭