线性表扩展-广义表

未匹配的标注

什么是广义表#

广义表 (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 网站上。

上一篇 下一篇
wangchunbo
讨论数量: 0
发起讨论 查看所有版本


暂无话题~