数组和链表的区别

来源:互联网 发布:mac写入ntfs硬盘 编辑:程序博客网 时间:2024/06/06 19:57

数组:数组中的元素在内存上连续存放的,而且删除或者添加一个元素需要执行大量移动操作,效率是很低的。但是随机访问某个元素可以通过index访问,时间复杂度为O(1).数组是不允许动态定义大小,即我们在使用前必须先确定数组的大小。不能适应元素动态增减的情况,当增加元素的时候,可能数组的大小不够。

链表:链表中的元素在内存上与数组是不一样的,链表中的每个元素的地址都是不连续的,相邻的元素都是通过指针联系在一起的。插入和删除元素不需要移动任何节点,操作指针就行,时间复杂度都是O(1)。链表是通过new动态分配内存的,是适合元素动态增减的情况的。

总结:如果需要对元素进行大量的删除或者添加,那么肯定选用链表;数组的内存是在栈上,链表的内存是在堆上。


原创粉丝点击