线性表扩展-广义表
什么是广义表#
广义表 (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
推荐文章: