数据结构算法十三讲线性表.pdfVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

数据结构和算法

作者:小甲鱼

让编程改变世界

Changetheworldbyprogram

•当我们不打算使用这个单链表时,我们需要把它

销毁(真狠,不要就给别人嘛,还销毁~)。

•其实也就是在内存中将它释放掉,以便于留出空

间给其他程序或软件使用。

•单链表整表删除的算法思路如下:

–结点p和q;

–将第一个结点赋值给p,下一结点赋值给q;

–循环执行释放p和将q赋值给p的操作;

•我们说好的代码呢?

–ClearList.c

•这段算法代码里,常见的错误就是有同学会觉得q

变量没有存在的必要,只需要在循环体内直接写

(p);p=p-next;即可?

•可这个世上没有无缘无故的爱,这样做会带来什么

问题呢?

•要知道p是一个结点,它除了有数据域,还有指针

域。当我们做(p);时候,其实是对它整个结点进

行删除和内存释放的工作。而我们整表删除是需要

一个个结点删除的,所以我们就需要q来记载p的下

一个结点。这就好比******。

•我们分别从分配方式、时间性能、空间性能

面来做对比。

•分配方式:

–顺序结构用一段连续的单元依次线性

表的数据元素。

–单链表采用链式结构,用一组任意的单元

存放线性表的元素。

•时间性能:

–查找

•顺序结构O(1)

•单链表O(n)

–和删除

•顺序结构需要平均移动表长一半的元素,时间

为O(n)

•单链表在计算出某位置的指针后,和删除时间

仅为O(1)

•空间性能:

–顺序结构需要预分配空间,分大了,容易

造成空间浪费,分小了,容易发生溢出。

–单链表不需要分配空间,只要有就可以分配,

元素个数也不受限制。

•综上所述对比,我们得出一些经验性的结论:

–若线性表需要频繁查找,很少进行和删除操作

时,宜采用顺序结构。

–若需要频繁和删除时,宜采用单链表结构。

–比如说游戏开发中,对于用户的个人信息,除

了时数据外,绝大多数情况都是,所

以应该考虑用顺序结构。

–而游戏中的玩家的或者装备列表,随着玩家的

游戏过程中,可能会随时增加或删除,此时再用顺

序就不太合适了,单链表结构就可以大展拳脚

了。

–当线性表中的元素个数变化较大或者根本不知道有

多大时,最好用单链表结构,这样可以不需要考虑

空间的大小问题。

–而如果事先知道线性表的大致长度,比如一年12个

月,一周就是星期一至星期日共七天,这种用顺序

结构效率会高很多。

•总之,线性表的顺序结构和单链表结构各有

其优缺点,不能简单的说哪个好,哪个不好,需

要根据实际情况,来综合平衡采用哪种数据结构

更能满足和达到需求和性能。

•最后,让我们通过欢乐的动画一起来回顾我们近

期学过的知识吧~

您可能关注的文档

文档评论(0)

137****2076 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档