广义表Head和Tail的运用-----Tail(Head(Tail(((a,b),(c,d)))))-----数据结构

先科普一下广义表Head和Tail的作用

对于 非空广义表 来说,它的表头(即Head)既可能是单元素又可能是广义表。
例如:
Head( (a,b,c) = a ;
Head(((a),(b))=(a);
但其表尾(即Tail)一定是一个广义表,也就是说,广义表利用Tail提取后也一定还是一个广义表。这么说有点像废话,其实不然,这里面就隐藏着一个初学者很容易踩到的陷阱。
例如:
Tail((a,b,c) 的答案显然是(b,c)
Tail(((a,b),(c,d)) 的答案是否是(c,d)呢,答案是否定的。
它的答案是 ((c,d))。这就是开头为什么要强调广义表利用Tail提取后也一定还是一个广义表的原因。因为如果广义表中除去表头部分后的部分仍是个广义表的话,就容易让我们混淆,以为答案直接是后部分,而忽略了给它多加一对括号。

下面,让我们做一道题试试手吧!
Tail ( Head ( Tail ( ( (a,b),(c,d) ) ) ) )

答案:
Tail(((a,b),(c,d)))=((c,d))而非(c,d)
Head( ((c,d)) )=(c,d);
Tail((c,d))=(d)

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值