广义表类似于集合,集合里面还可以放集合
如A = (a,b,c),B = ((a,b,c),d),C = ((a,b),c,d,e)
是非线性表。线性表只能放元素,而不能放“集合”
长度:
集合的大小,即集合里面元素的个数
A的长度是3
B的长度是2, 因为B中只有两个元素:(a,b,c)和d
原子个数:
不管这个广义表有多少层,有多少个原子,原子个数就是多少,A的原子个数是3,B的原子个数是4
深度:
最好的记忆方式是:括号的层数就叫深度。为什么叫它深度?因为一个广义表可以转换成一棵树,这棵树有对应的深度
表头:
去一层括号,第一个逗号之前的部分,既可以是元素(原子),也可以是集合(广义表)
A 的表头是a
B 的表头是(a,b,c)
C 的表头是(a,b)
表尾:
前面去一个括号,第一个逗号之后加一个左括号就是表尾
A 的表尾是(b,c)
B 的表尾是(d)
C 的表尾是(c,d,e)
记住:表尾只能是一个集合(广义表),不可能是一个元素(原子)
巴拉巴拉就到这儿了,撒有拉拉
对了还有一个没说,从广义表开始,递归调用就是我们的常客了,我巨怕,做好心理准备呜呜呜呜