Skip to content

Latest commit

 

History

History
11 lines (7 loc) · 1.34 KB

数据结构.md

File metadata and controls

11 lines (7 loc) · 1.34 KB

顺序表和链表

  • 顺序表存储数据,需预先申请一整块足够大的存储空间,然后将数据按照次序逐一存储,数据之间紧密贴合,不留一丝空隙。
  • 链表的存储方式与顺序表截然相反,什么时候存储数据,什么时候才申请存储空间,数据之间的逻辑关系依靠每个数据元素携带的指针维持。

顺序表的空间利用率显然要比链表高。

时间复杂度

  • 主要涉及访问元素的操作,元素的插入、删除和移动操作极少:适合使用顺序表。这是因为顺序表中存储的元素可以使用数组下标直接访问,无需遍历整个表,因此使用顺序表访问元素的时间复杂度为 O(1);而在链表中访问数据元素,需要从表头依次遍历,直到找到指定节点,花费的时间复杂度为 O(n);
  • 主要涉及元素的插入、删除和移动,访问元素的需求很少:适合使用链表。链表中数据元素之间的逻辑关系靠的是节点之间的指针,当需要在链表中某处插入或删除节点时,只需改变相应节点的指针指向即可,无需大量移动元素,因此链表中插入、删除或移动数据所耗费的时间复杂度为 O(1);而顺序表中,插入、删除和移动数据可能会牵涉到大量元素的整体移动,因此时间复杂度至少为 O(n)。