广义表常用表示
① E=()
E是一个空表,其长度为0。
② L=(a,b)
L是长度为2的广义表,它的两个元素都是原子,因此它是一个线性表
③ A=(x,L)=(x,(a,b))
A是长度为2的广义表,第一个元素是原子x,第二个元素是子表L。
④ B=(A,y)=((x,(a,b)),y)
B是长度为2的广义表,第一个元素是子表A,第二个元素是原子y。
⑤ C=(A,B)=((x,(a,b)),((x,(a,b)),y))
C的长度为2,两个元素都是子表。
⑥ D=(a,D)=(a,(a,(a,(…))))
D的长度为2,第一个元素是原子,第二个元素是D自身,展开后它是一个无限的广义表。
一、广义表
1.1 定义
A = () :广义表 A 是一个空表
B = (d, e) :广义表 B 的元素全是原子 d 和 e
C = (b, B, (c, d)) :广义表 C 的元素分别是 原子 b、广义表 B、广义表 (c, d)
1.2 广义表的长度
A = () :长度为 0
B = (d, e) :长度为 2
C = (b, B, (c, d)) :长度为 3
1.3 广义表的深度
嵌套几个括号深度就是几
A = () :深度为 1
B = (d, e) :深度为 1
C = (a, B) :深度为 2
D = (a, (d, e)) :深度为 2
E = ((a, D), c) :深度为 4
1.4 广义表获取表头和表尾
A = (a, b, c)
GetHead(A) = a
GetTail(A) = (b, c)
B = ()
GetHead(B) = NULL
GetTail(B) = ()
C = (a, b)
GetHead© = a
GetTail© = (b)
1.5 存储结构
最后一个是一个无限深度的广义表
B = (a, B)