软件设计师学习笔记——数据结构——广义表
欢迎大家去作者本人的B站的频道,观看相同的内容
https://www.bilibili.com/read/cv17005158
PS:本人学生一名,自学,没有项目经验,可能对程序的理解有误,有问题欢迎提出。
变量的名字有翻译,单击变量的右上角的数字,到文章的下面,有对变量的解释。理解之后,单击对应解释的后面回车键可回到刚刚阅读的地方。
广义表是有0个或多个元素或子表所主成的有限序列。
它与线性表最大的区别就是:其中的子表也可以是广义表本身或者是另外一个广义表。而它的长度是元素的个数,深度是他的最大层数。
这里由两个东西需要简单的说明一下,原子和子表
原子可以理解为元素,子表可以理解为另一个表
由于广义表的结构的复杂,各种的运算不如线性表简单,所以这里就只讨论的两个重要的运算。
1.取表头:就是非空广义表中的第一个元素,但这个元素可以是单元素,也可以是子表。
2.取表尾:就是非空广义表中除表头元素外,由其余的元素所构成的表。注意,非空广义表的表尾必定是一个表
特点:
1.可以多层次,即元素可以是子表,而这个子表里面可以存放另一个子表,而这个另一个子表里也可以存放另另一个子表,以此类推
2.广义表的元素可以是已经被定义的广义表,也就是表A和表B,都可以拥有表c的东西
3.可以递归,即元素可以是本身
这种特殊的表,是一种层次的非线性的结构,一般采用链式结构。
图上,就是单个元素广义表。
图上,就是有一个广义表的广义表。
图上,就是指向自己的广义表。
即使,我没有对其讲解,其实看这三个图,多多少少也能看的出来,它们的结构。
所以就不过多的讲解了。
欢迎大家去作者本人的B站的频道,观看相同的内容,拜托了,增加浏览量一下
https://www.bilibili.com/read/cv17005158