广义表((a,b),c,d)表头和表尾分别是什么?

广义表((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)
(去掉表头剩下的是表尾)

你可能感兴趣的:(广义表a,b,c,d表头和表尾分别是什么,表头,C语言数据结构)