广义表

原创 2016年08月29日 08:21:40

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

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

广义表的长度和广义表的深度

广义表的长度和广义表的深度 广义表是对线性表的扩展——线性表存储的所有的数据都是原子的(一个数或者不可分割的结构),且所有的数据类型相同。而广义表是允许线性表容纳自身结构的数据结构。 广义...

广义表的长度和深度、表头表尾运算

广义表(((a,b,(),c),d),e,((f),g))的长度是____,深度是____? 广义表长度是数第一层括号内的逗号数目 可以看到,只有一个元素,就是((a,b,(),c),d),e,(...

广义表的建立与遍历

  • 2015年12月16日 08:04
  • 3KB
  • 下载

数据结构数组和广义表课件

  • 2014年10月16日 21:53
  • 861KB
  • 下载

第6次数据结构上机(数组和广义表的基本运算实现)

实验名称:数组和广义表的基本运算实现 指导教师:           王莹洁               专业班级:       计163-1         姓   名:      曹欣...

数组和广义表

  • 2014年10月24日 19:59
  • 2.88MB
  • 下载

数组和广义表

  • 2013年06月17日 21:20
  • 46KB
  • 下载

c语言版数据结构(奇迹冬瓜)-数组和广义表(稀疏矩阵的转置算法一)

//稀疏矩阵 /* |0 12 9 0 0 0 0| |0 0 -3 0 0 15| |0 0 0 0 0 0 0|...

数组和广义表

  • 2013年08月13日 11:10
  • 537KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:广义表
举报原因:
原因补充:

(最多只允许输入30个字)