广义表中表头和表尾基本知识
广义表((a,b),c,d)表头和表尾分别是什么?
公式:
(1)表头:当广义表LS非空时,称第一个元素为LS的表头;
(2)表尾:称广义表LS中除去表头后其余元素组成的广义表为LS的表尾。
区别:
表头是元素,表尾是广义表。
举个栗子。
广义表(a, (b))的表头是单元素a,表尾是广义表((b))。【要在(b)的外面加一层小括号,才能变成广义表。因此是((b)) 】
广义表(a)的表头是单元素a,表尾是广义表(),为啥是(),不是空呢?明明a后面没有元素了。表尾一定是个广义表。意思就是一定带(),没有元素就有一个单独的()好了。
第二个例子。
广义表(a, b, c)的表头是单元素a,表尾是广义表(b,c)。
好了,到现在,其实已经清楚了,广义表的表头是单元素,表尾是个广义表。
总结: 根据广义表对表头和表尾的定义可知:
(1)对任意一个非空的广义表,其表头可能是单元素,也可能是广义表,
(2)而其表尾一定是广义表。
(3)注意表尾的深度(即括号的嵌套层数)
(4)表尾是由除了表头以外的其余元素组成的广义表,所以,需要在表尾的直接元素外面再加一层括号。
求广义表的表头和表尾
求广义表的表头和表尾是广义表的基本操作,给定一个广义表,可以将某个单元素通过表头和表尾求出。
已知广义表L=(a,(b,(c,(d)), e), f )
head(LS)表示取表的第一个元素的值,
tail(LS)表示把表中除第一个元素外的所有元素组成一个新表,相当于每次删除表中第一个元素(原表中元素数大于1)。
⑴ L1=Tail(L)=((b,(c,(d)), e), f ) ⑵ L2=Head(L1)= (b,(c,(d)), e) ⑶ L3=Tail(L2)=((c,(d)), e) ⑷ L4=Head(L3)=(c,(d)) ⑸ L5=Head(L4)= c