一、列表和链表简介、实现及应用
通过下列一系列文章,我们对基于连续内存模型的列表和链式内存模型的链表,以及二者的实现和应用都有了一个较为全面的认识:
列表
-
简介和实现:
-
应用:
链表
- 【数据结构Python描述】单向线性链表简介、Python实现及应用
- 【数据结构Python描述】单向循环链表简介、Python语言实现及应用
- 【数据结构Python描述】双向链表简介、Python实现及应用
二、基于列表和链表实现的序列对比
就像没有最好的编程语言一样,对于通过列表和链表作为对象元素的存储容器实现的序列,由于二者之间各有优劣,因此这些序列也优劣各异。因此,为了在实际应用中能够在最合适的场景下使用最合适的数据结构,有必要对基于二者实现的序列进行优劣对比:
基于列表实现序列的优势
- 基于列表实现的序列支持通过索引以 O ( 1 ) O(1) O(1)的时间复杂度访问任何序列中元素
- 基于列表实现的序列和基于链表实现的序列,二者增删元素的操作一般相差常数倍
- 存储相同数量对象元素的前提下,基于列表实现的序列比基于链表实现的序列更节省内存
基于链表实现序列的优势
- 基于链表的序列,其每一个操作一般具有最坏时间复杂度,而基于列表实现的序列,其很多操作一般仅具有摊销时间复杂度
- 基于链表的序列(见【数据结构Python描述】位置列表简介与Python版手工实现)可实现在任意位置的 O ( 1 ) O(1) O(1)时间复杂度的插入和删除操作