线性表扩展-广义表

未匹配的标注

什么是广义表

广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。

定义

通常用递归的形式进行定义,记作:LS=(a0,a1,…,an)

ps:
其中LS是表名,ai是表元素,可以是表(称作子表),也可以是数据元素(成为原子)。其中n是广义表的长度(也就是最外层包含的元素个数),n=0的广义表是空表;而递归定义的重数就是广义表的深度,直观的说,就是定义中所含括号的重数(原子的深度为0,空表的深度为1)。例:LS=(1,(2,3),(4,5))

基本的运算

取表头:head(LS) 就是取出最外层表的第一个元素

取表尾tail(LS) 就是最外层表中除第一个元素外的所有元素

例子

若有 LS=(a,(b,c),(d,e))
取出头,第一个。
head(LS) = a
取尾,第一个外的 所有元素
tail(LS)= ((b,c),(d,e))

提问小例子

1. 有广义表 LS1=(a,(b,c),(d,e)),求广义表长度,深度

长度3, 深度2.

线性表扩展-广义表

2. 有广义表 LS1=(a,(b,c),(d,e))取出 字母b,如何操作?

head(head(tail(LS1)))

线性表扩展-广义表

步骤分析:

  1. 首先取出,LS1的尾部,为 ((b,c),(d,e))
  2. 其次取出,第一步中的 头部,( (b,c) )
  3. 最后,取出bc 的头部,(b)

感谢关注

上海PHP自学中心-免费编程视频教学|Python教学|Web开发教学|全栈开发教学|加密与解密|Linux教学|Golang教学|

S3d25uqwht.png!large

7Dn78VKKcW.jpg!large

]

@author wangchunbo

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~