[C++]数据结构:线性表的公式化描述和链式描述的结构特点与基本操作

线性表的公式化描述的基本特点:关于线性表的概念,可以简单的理解成按照一定顺序排列的列表。但是这里的顺序并不是指元素内容的有序,而是指元素的位置的有序。就好像是有一个队伍,不一定按照高矮胖瘦进行排列,但是在队伍中每个人按照前后站着谁,都有自己相对固定的位置。再介绍一下公式化描述的概念。公式化描述是采用数组来表示一个对象的实例,数组中的每个位置为单元或者节点,每个数组单元需要足够大以便能容纳数
摘要由CSDN通过智能技术生成

线性表的公式化描述的基本特点:

关于线性表的概念,可以简单的理解成按照一定顺序排列的列表。但是这里的顺序并不是指元素内容的有序,而是指元素的位置的有序。就好像是有一个队伍,不一定按照高矮胖瘦进行排列,但是在队伍中每个人按照前后站着谁,都有自己相对固定的位置。

再介绍一下公式化描述的概念。公式化描述是采用数组来表示一个对象的实例,数组中的每个位置为单元或者节点,每个数组单元需要足够大以便能容纳数据对象实例中的任意一个元素。在公式化描述中,可以用一个数学公式来确定元素的位置。一个简单的映射公式如下:location(i)=i-1。

上面的公式表明,第i个元素在数组的i-1位置处。由此可以看出,公式化描述的一个优点便是,访问数据极为便捷,直接调用对应的映射函数便可以知道元素的位置并且进行访问。

但是既然有好处,相比也是有缺点的,下面我们来客观的考察一下线性表的公式化描述的优缺点。

优点是不言而喻了,正如上面所谈到的那样,我们可以非常轻松的使用C++的函数对线性表里的内容进行访问,并且执行查找,删除,修改的函数都有一个最差的、与表的大小呈线性关系的时间复杂性。

但是公式化描述的一个明显的缺点就是空间的低效使用。

举个例子:如果你要测试输入数据的平均值,使用公式化描述的线性表来存储输入,那么你将这个线性表的长度设置为多少比较合适呢?这显然是一个棘手的问题。也就是说,公式化描述线性表需要预测线性表最大的可能尺寸。解决的方案之一就是初始化的时候置MaxSize=1,然后在后面插入的时候如果表中已经有MaxSize个元素则将MaxSize翻倍按照这个新尺寸重新分配数组,并将老数组复制过去再删除老数组。光听这过程就知道,动态调整分配的空间并不是公式化描述的强项。

公式化描述比较适用于已知尺寸的数据存储,比如一个猴子的坐标,不管他如何腾挪闪转七十二变,还是只需要三个数字就可以将他的坐标表示出来。


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值