数组与链表的区别
2024年08月02日
•
内存
•
我要评论
数组一般创建在栈区,链表一般创建在堆区,在增加节点时需要new或malloc新节点,相较于数组长度不固定,自由度高。所以当线性表进行大量的插入和删除操作时建议使用链表,若主要对线性表进行查找操作,较少进行插入操作是建议使用数组。数组可以通过下标随机访问,单向链表只能通过头结点从前向后访问链表中的元素。链表在进行插入删除时,找到要插入或删除的位置后,增删时间复杂度为O(1)。数组在插入或删除的时候需要移动链表中的其他元素,时间复杂的为O(n)。链表是链式存储,链表在内存空间中不一定是连续的。
1、存储方式不同
数组是连续存储,数组在创建时需要一个整块的空间。
链表是链式存储,链表在内存空间中不一定是连续的。
数组一般创建在栈区,链表一般创建在堆区,在增加节点时需要new或malloc新节点,相较于数组长度不固定,自由度高。
2、访问元素方式不同
数组可以通过下标随机访问,单向链表只能通过头结点从前向后访问链表中的元素。
3、增删效率不同
数组在插入或删除的时候需要移动链表中的其他元素,时间复杂的为o(n)。
链表在进行插入删除时,找到要插入或删除的位置后,增删时间复杂度为o(1)。
所以当线性表进行大量的插入和删除操作时建议使用链表,若主要对线性表进行查找操作,较少进行插入操作是建议使用数组。
相关文章:
-
内存取证-volatility工具的使用 (史上更全教程,更全命令)安装步骤 命令解析 工具插件分析 例题讲解…
-
-
-
-
当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1) 记录数组一共有几行几列,有多少个不同的值2) 把具有不同值的元素的行列…
-
【数据结构】二叉树的前序遍历(七) 题目:二叉树的前序遍历 开始分析: 思路实现: 易错点: 源代码:…
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论