一、定义
广义表简称表,它是线性表的推广。一个广义表是n个元素的一个序列,n=0时称为空表。设ai为广义表的第i个元素,则广义表GL表示为:
GL=(a1, a2, a3, ........,an)
如果ai是单个数据元素,则ai是广义表GL的原子;如果ai是一个广义表,则ai是广义表GL的子表。
二、特性
- 广义表中的数据元素有相对次序;
- 广义表的长度定义为最外层包含的元素个数;
- 广义表的深度定义为所含括号的重数。其中原子的深度为0,空表的深度为1.
- 广义表可以是一个递归的表。递归表深度为无穷值,长度为有限值。
- 任何一个非空广义表GL都可以分解为表头 head(GL) = a1 和表尾 tail(GL)=(a2, a3,....,an)
A = () 长度为0,深度为1, 无表头表尾
B = (e) 长度为1,深度为1,head(B)=e, tail(B)=()
C = (a,(b,c,d)) 长度为2,深度为2, head(C) = a, tail(C) = ((b,c,d))
D = (A,B,C)=((), (e), (a,(b,c,d))) 长度为3,深度为3, head(D)=A=(), tail(D)=(B, C)=((e), (a,(b,c,d)) )
E = ( (a, (a,b), ((a,b), c)) ) 长度为1, 深度为4, head(E)=(a, (a,b), ((a,b), c)) ,tail(E)=()