广义表取表头表尾_5.4 广义表

c47334c327ec9f00b0b3009eb02d18f2.png

返回目录:

Chilan Yu:《数据结构》目录链接​zhuanlan.zhihu.com
d999785fe7b687accaaa3a14933e7d96.png

5.4.1 广义表的概念

广义表也是线性表的一种推广。

广义表也是n个数据元素(d1,d2,d3,…,dn)的有限序列,但不同的是,广义表中的di既可以是单个元素,还可以是一个广义表,通常记作:GL=(d1,d2,d3,…,dn)。GL是广义表的名字,通常用大写字母表示。

n是广义表的长度。若 di是一个广义表,则称di是广义表GL的子表。

在GL中, d1是GL的表头,其余部分组成的表(d2,d3,…,dn)称为GL的表尾。由此可见,广义表的定义是递归定义的。

例:

  • D =( ):空表;其长度为零。
  • A = (a,(b,c)):表长度为2的广义表,其中第一个元素是单个数据a,第二个元素是一个子表(b,c)。
  • B = (A,A,D):长度为3的广义表,其前两个元素为表A,第三个元素为空表D。
  • C =(a,C):长度为2递归定义的广义表,C相当于无穷表C = (a,(a,(a,(…) ) ) )。
  • head(A) = a:表A的表头是a。
  • tail(A) = ( (b,c) ):表A的表尾是( (b,c) ) ,广义表的表尾一定是一个表

5.4.2 广义表例题

例:求广义表表头与表尾。
已知广义表 L = ( (x,y,z),a,(u,t,w) ),求head(head(tail(tail(L))))的结果。

解:

(1)tail(L) = (a,(u,t,w))

(2)tail(tail(L)) = ((u,t,w))

(3)head(tail(tail(L))) = (u,t,w)

(4)head(head(tail(tail(L)))) = u

所以head(head(tail(tail(L)))) = u。


返回目录:

Chilan Yu:《数据结构》目录链接​zhuanlan.zhihu.com
d999785fe7b687accaaa3a14933e7d96.png
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值