广义表

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、广义表的存储结构

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值