欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

多重表(广义表)

程序员文章站 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)可能又是一个广义表。

可能会有人发现一个小小的问题,就是为什么我又将广义表叫作多重表呢?这其实只是一个理解角度的不同而带来的不同叫法罢了,多重表这种叫法想表达的主要意思是表中的元素可以是另一个表,而这另一个表中的元素又可以是一个表,相当于“一重又一重”的表,所以叫多重表。这个叫法其实并不是很重要。

讲到这儿,多重表的定义和可能的使用场景(想想多维数组可能使用的情况)想必大家都心里有数了,但是这篇博文肯定不能就这么结束了