广义表((a,b),c,d)表头和表尾分别是什么?
当广义表LS非空时,称第一个元素为LS的表头;称广义表LS中除去表头后其余元素组成的广义表为LS的表尾。例如,广义表(a, (b))的表头是单元素a,表尾是广义表((b))。
根据广义表对表头和表尾的定义可知:对任意一个非空的广义表,其表头可能是单元素,也可能是广义表,而其表尾一定是广义表。注意表尾的深度(即括号的嵌套层数),表尾是由除了表头以外的其余元素组成的广义表,所以,需要在表尾的直接元素外面再加一层括号。
求广义表的表头和表尾是广义表的基本操作,给定一个广义表,可以将某个单元素通过表头和表尾求出。例如,已知广义表L=(a,(b,(c,(d)), e), f ),通过表头和表尾操作将单元素c求出,则在求c的每一步均要将包含c的子表或单元素取出,求解过程为:
⑴ 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
所以,将单元素c从广义表L中取出的操作为:Head(Head(Tail(Head(Tail(L)))))。
表头(a,b)
表尾(c,d)
(去掉表头剩下的是表尾)