数据结构-广义表

数据结构

4.5广义表
定义:每n个元素a0,a1,…,a(n-1)的有限序列,元素可以是原子,可以是广义表。
记作:LS=(a1,a2,…,an),LS为表名,n为表长,ai为元素,习惯上表名用大写字母,元素用小写字母表示。
表头:head(LS)=a1
表尾:除了表头之外的元素构成的一个子表,记作tail(LS)= (a2,…,an);

广义表的性质:
深度:括号出现的重数。原子深度是0,空表深度是1。
广义表可以可以用图形象地表示出来。
数据结构-广义表
广义表和线性表的区别:
广义表可以看作是线性表的推广,线性表是广义表的特例。

广义表的结构非常灵活,在某种条件下,它可以兼容线性表,数组,树,有向图等常用的数据结构

当二维数组的每行或每列作为子表处理时,二维数组即为一个广义表。

广义表的运算:
求表头GetHead(L):
求表尾GetTai(L):一定是一个表。