数据结构-顺序表和链表之间优缺点

一、顺序表存储数组

原理:将表中元素一个个存入一组连续的存储单元中,这种存储结构是顺序结构。采用顺序存储结构的线性表简称为“ 顺序表”。缓存

优势:简单易用 使用的是联系的内存空间  能够借助CPU的缓存机制  预读取数组中的数据  因此访问效率比较高数据结构

缺点:1.插入和删除比较慢指针

           2.不能够增加长度    内存

           3:若是申请的过大  系统可能没有足够的内存空间给分配,会致使内存不足,若是声明太小 就会致使不够用  若是不够用 只能申请一个更大的空间 还要把原数组的数据copy 过去  影响效率开发

好比:插入或者删除一个元素时,整个表须要遍历移动元素来从新排一次顺序  C# 中 如 ArrayList List 等效率

二、链式表存储原理

原理:链表存储是在程序运行过程当中动态的分配空间,只要存储器还有空间,就不会发生存储溢出问题List

优势:插入和删除速度快,保留原有的物理顺序循环

缺点:查找速度慢,由于查找时,须要循环链表访问  而且链式存储在内存中不连续  这样对CPU的缓存不友好  没办法作到预先读取  链表除了要存储自己数据外 还要额外维护 前 后节点的指针,对内存要求的严格的程序 是不友好的~并且链表频繁的删除和新增 会致使内存也频繁的申请 释放   容易产生内存碎片    致使GC 频繁的去回收  

好比:插入或者删除一个元素时,只须要改变指针指向便可  C# 中 LinkedList<T>

总结  在实际开发中  咱们仍是要权衡 本身的使用场景 来决定 使用什么样的数据结构

相关文章
相关标签/搜索