zoukankan      html  css  js  c++  java
  • 线性表8 数据结构和算法13

    线性表8

     

    让编程改变世界

    Change the world by program


     

    单链表的整表删除

      当我们不打算使用这个单链表时,我们需要把它销毁(真狠,不要就给别人嘛,还销毁~)。 其实也就是在内存中将它释放掉,以便于留出空间给其他程序或软件使用。   单链表整表删除的算法思路如下:
    声明结点p和q; 将第一个结点赋值给p,下一结点赋值给q; 循环执行释放p和将q赋值给p的操作;
      我们说好的代码呢?

    ClearList.c

      这段算法代码里,常见的错误就是有同学会觉得q变量没有存在的必要,只需要在循环体内直接写free(p); p = p->next; 即可? 可这个世上没有无缘无故的爱,这样做会带来什么问题呢?   要知道p是一个结点,它除了有数据域,还有指针域。当我们做free(p);时候,其实是对它整个结点进行删除和内存释放的工作。而我们整表删除 是需要一个个结点删除的,所以我们就需要q来记载p的下一个结点。这就好比******。  

    单链表结构与顺序存储结构优缺点

      我们分别从存储分配方式、时间性能、空间性能三方面来做对比。  

    存储分配方式:

    顺序存储结构用一段连续的存储单元依次存储线性表的数据元素。

    单链表采用链式存储结构,用一组任意的存储单元存放线性表的元素。

     

    时间性能:

    查找

    顺序存储结构O(1)

    单链表O(n)

    插入和删除

    顺序存储结构需要平均移动表长一半的元素,时间为O(n)

    单链表在计算出某位置的指针后,插入和删除时间仅为O(1)

     

    空间性能:

      顺序存储结构需要预分配存储空间,分大了,容易造成空间浪费,分小了,容易发生溢出。 单链表不需要分配存储空间,只要有就可以分配,元素个数也不受限制。  

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

    若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。 若需要频繁插入和删除时,宜采用单链表结构。 比如说游戏开发中,对于用户注册的个人信息,除了注册时插入数据外,绝大多数情况都是读取,所以应该考虑用顺序存储结构。 而游戏中的玩家的武器或者装备列表,随着玩家的游戏过程中,可能会随时增加或删除,此时再用顺序存储就不太合适了,单链表结构就可以大展拳脚了。 当线性表中的元素个数变化较大或者根本不知道有多大时,最好用单链表结构,这样可以不需要考虑存储空间的大小问题。 而如果事先知道线性表的大致长度,比如一年12个月,一周就是星期一至星期日共七天,这种用顺序存储结构效率会高很多。
      总之,线性表的顺序存储结构和单链表结构各有其优缺点,不能简单的说哪个好,哪个不好,需要根据实际情况,来综合平衡采用哪种数据结构更能满足和达到需求和性能。 最后,让我们通过欢乐的动画一起来回顾我们近期学过的知识吧~ [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/BdsUAwohVQCHkxNR770']视频下载[/Downlink] [Downlink href='http://urlxf.qq.com/?7Vjaiyu']备胎下载[/Downlink]
  • 相关阅读:
    Oracle 按一行里某个字段里的值分割成多行进行展示
    Property or method "openPageOffice" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by
    SpringBoot 项目启动 Failed to convert value of type 'java.lang.String' to required type 'cn.com.goldenwater.dcproj.dao.TacPageOfficePblmListDao';
    Maven 设置阿里镜像
    JS 日期格式化,留作参考
    JS 过滤数组里对象的某个属性
    原生JS实现简单富文本编辑器2
    Chrome控制台使用详解
    android权限(permission)大全
    不借助第三方网站四步实现手机网站转安卓APP
  • 原文地址:https://www.cnblogs.com/LoveFishC/p/3847250.html
Copyright © 2011-2022 走看看