1,什么是广义表?
广义表是由n个表元素组成的有限序列,是线性表的推广。
通常使用递归的形式进行定义,记做:LS=(a0,a1,...,an)
注:
其中LS是表名,ai是表元素,可以是表(称作子表),也可以是数据元素(成为原子)。其中n是广义表的长度(也就是最外层包含的元素个数),n=0的广义表是空表;而递归定义的重数就是广义表的深度,直观的说,就是定义中所含括号的重数(原子的深度为0,空表的深度为1)。例:LS=(1,(2,3),(4,5))
2,基本的运算:
head(LS):取出最外层表的第一个元素
nail(LS):取出最外层表中除第一个元素外的所有元素。
3,常考题型
(1)计算广义表LS=(1,(2,3),(4,5))的长度,深度
长度:3【最外层的元素个数】
深度:2【嵌套的层数】
(2)写出取出2的操作
head(head(nail(LS)))
解析:
nail(LS)=((2,3),(4,5))
head(nail(LS))=(2,3)
head(head(nail(LS)))=2