# 认识广义表
广义表是线性表的推广,与线性表不同的是,线性表中的每一个数据元素都属于同一数据对象。
广义表可以表示为:
- 空表:()
- 表头:(表头)
- 表头 + 表尾:(表头,表尾)
实际上这就是他的基本结构,而对于其中的元素来说,它可以是表,也可以是元素,这就是广义!
# 取头 Head ()
Head 是取头操作,他拿的是一个元素或者一个表
# 取尾 Tail ()
Tail 是取尾操作,他拿到的必是一个表
# 巧记
对于蟒蛇(Python)来说,头只有一个,而它的尾巴很长。
所以,取头 Head 元素比较单一,取尾 Tail 往往比较长。
# 练习
A=(a,b)
B=(A,A)
C=(a,(b,A),B)
对于操作:Tail(Head(Tail(C)))的结果是什么?
# 解答
Tail(C)尾巴长:(a,(b,A),B )
Tail(C)=((b,A),B)
Head(Tail(C))头短:((b,A),B)
Head(Tail(C))=(b,A)
Tail(Head(Tail(C)))尾巴长:(b,A)
Tail(Head(Tail(C)))=(A)
尾巴长必是一个表,头短可能是一个表也可能是一个元素