线性表扩展-广义表
什么是广义表
广义表(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)))
步骤分析:
- 首先取出,LS1的尾部,为 ((b,c),(d,e))
- 其次取出,第一步中的 头部,( (b,c) )
- 最后,取出bc 的头部,(b)
感谢关注
上海PHP自学中心-免费编程视频教学|Python教学|Web开发教学|全栈开发教学|加密与解密|Linux教学|Golang教学|
]
@author wangchunbo