关闭

广义表

193人阅读 评论(0) 收藏 举报
分类:

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

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:103975次
    • 积分:3553
    • 等级:
    • 排名:第9615名
    • 原创:212篇
    • 转载:64篇
    • 译文:44篇
    • 评论:27条
    文章分类
    最新评论