多重表(广义表)
程序员文章站
2023-04-05 08:06:22
在深入浅出数据结构系列前面的文章中,我们一直在讨论“线性表”,其形式如下: 由a1,a2,a3,……a(n 1)个元素组成的序列,其中每一个元素ai(0 ......
在深入浅出数据结构系列前面的文章中,我们一直在讨论“线性表”,其形式如下:
由a1,a2,a3,……a(n-1)个元素组成的序列,其中每一个元素ai(0<i<n)都是一个“原子”,“原子”的意思就是说元素本身是一个个体,所有元素都是相同的结构。
但是在我们常见的某些应用,比如excel的表格中,我们发现表并不一定是线性表,excel中的表就明显是二维的结构
那么在数据结构中,我们会使用这种广义上的表吗?答案是会,我们也会、或者说我们也能使用这样的非线性表。其实我们早就已经在使用这样的非线性表、广义表了,那就是多维数组。不难发现二维数组就可以抽象成excel当中的表的样子。那么,广义表的定义是怎样的呢?其实很简单,就是在线性表的基础上稍加修改,我会用绿色将修改了的部分标识出来:
由a1,a2,a3,……a(n-1)个元素组成的序列,其中每一个元素ai(0<i<n)可能又是一个广义表。
可能会有人发现一个小小的问题,就是为什么我又将广义表叫作多重表呢?这其实只是一个理解角度的不同而带来的不同叫法罢了,多重表这种叫法想表达的主要意思是表中的元素可以是另一个表,而这另一个表中的元素又可以是一个表,相当于“一重又一重”的表,所以叫多重表。这个叫法其实并不是很重要。
讲到这儿,多重表的定义和可能的使用场景(想想多维数组可能使用的情况)想必大家都心里有数了,但是这篇博文肯定不能就这么结束了
上一篇: python学习-38迭代器和生成器
下一篇: Python-15-面向对象