C语言进阶-第17讲:链表和数组的比较

知识点总结:


       链表的表示:链表用含指针的结构体实现

       链表分类:

          单链表:每一个结点都要保存一个指向下一个元素的指针。    
          双链表:每个结点既要保存下一个结点的地址,还要保存上一个结点的地址。    
          循环链表:最后一个结点中保存指向第一个结点的地址。


       链表和数组的比较

       链表:
         1.内存地址上可以是不连续的,内部数据不具备随机访问性;
         2.查找和删除 更改相应结点内的节点信息即可(不需要更改节点的内存地址);
         3.链表可以方便地扩展内存空间
           即:链表动态地进行存储分配,可以适应数据动态地增减的情况。

        

       数组:
         1.在内存上给出了连续的空间,内部数据可随机访问;
         2.查找和删除 参考提高篇中实现线性表基本操作的函数;
         3.数组建立后所占用的空间大小就是固定的.如果满了就没法扩展
           即:数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减。



       数组与链表的优缺点:    
       数组:
       优点:使用方便 ,查询效率 比链表高,内存为一连续的区域  
       缺点:大小固定,不适合动态存储,不方便动态添加         
       链表:
       优点:可动态添加删除   大小可变                         
       缺点:只能通过顺次指针访问,查询效率低


       链表和数组的本质差异:   
       1.在访问方式上    
          数组可以随机访问其中的元素                            
          链表则必须是顺序访问,不能随机访问   
       2.空间的使用上    
          链表可以随意扩大                                      
          数组则不能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值