美文网首页数据结构
数据结构与算法 链表

数据结构与算法 链表

作者: 科技猿人 | 来源:发表于2020-10-15 23:03 被阅读0次

链表:零散的内存空间

数组:连续的内存空间

链表类型:单链表、双向链表、循环链表

链表和数组的比较:

数组:

    查询:按索引访问元素,时间复杂度为O(1)

    插入/删除:可能会涉及大量数据移动,时间复杂度为O(n)

链表:

    查询:需要从头依次遍历,时间复杂度为O(n)

    插入/删除:改变节点指针即可,时间复杂度为O(1)

单链表、双向链表的比较:

    共同点

随机访问数据的时间复杂度为O(n)。

在给定结点之后或列表开头添加一个新结点的时间复杂度为O(1)。

删除第一个结点的时间复杂度为O(1)。

    差异点

在单链表中,无法获取给定结点的前一个结点,需要先查找前一结点,时间复杂度为O(n),然后删除。

在双链表中,直接使用“prev”引用字段获取前一个结点。删除给定结点时间复杂度为O(1)。

对比总结

如果高频添加或删除结点,选择链表。

如果高频按索引访问元素,选择数组。

相关文章

网友评论

    本文标题:数据结构与算法 链表

    本文链接:https://www.haomeiwen.com/subject/jrovpktx.html