首页 > 试题广场 >

以下关于链表和数组说法正确的是()

[不定项选择题]
以下关于链表和数组说法正确的是()
  • 数组从栈中分配空间,链表从堆中分配空间
  • 数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)
  • 数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n)
  • 对于add和remove,ArrayList要比LinkedList快
简要概括:https://blog.csdn.net/rl529014/article/details/51169677
数组静态分配内存,链表动态分配内存;
数组在内存中连续,链表不连续;
数组元素在栈区,链表元素在堆区;
数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);
数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。
编辑于 2019-07-29 19:13:19 回复(0)
Java中new的数组不也是在堆中吗,只是数组的引用在栈中,不用的语言还不一样吗,有没有大佬帮忙分析一下!~
发表于 2019-08-08 13:57:46 回复(5)
对于数组,对象是放在堆内存中的,对象的引用是放在栈内存中的
发表于 2021-07-18 09:25:53 回复(0)
链表插入删除平均复杂度不应该是O(n)吗,求大佬解答
发表于 2021-09-27 23:47:52 回复(1)
数组静态分配内存,链表动态分配内存; 数组在内存中连续,链表不连续; 数组元素在栈区,链表元素在堆区; 数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n); 数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。
发表于 2021-10-29 17:05:02 回复(0)
A不严谨,不对☹️
发表于 2020-11-13 10:57:38 回复(0)
链表删除也是O(n)啊
发表于 2022-11-01 19:06:57 回复(1)
A为什么不对?
发表于 2022-06-29 20:43:36 回复(0)
这题就看着图一乐
发表于 2022-03-07 20:37:54 回复(1)
数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起
发表于 2019-03-17 12:19:31 回复(0)
B肯定错的,我还百度了链表就是要o(n)
发表于 2023-03-10 09:41:51 回复(1)
这道题答案应该是AC吧
发表于 2023-01-03 14:44:39 回复(0)
这道题的B选项,在链表中插入删除  不应该先找到点么?那不就是O(n)?
发表于 2022-10-20 19:33:20 回复(0)
简要概括:https://blog.csdn.net/rl529014/article/details/51169677 数组静态分配内存,链表动态分配内存; 数组在内存中连续,链表不连续; 数组元素在栈区,链表元素在堆区; 数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n); 数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。
发表于 2021-10-13 17:25:41 回复(0)
错的原因不理解栈堆 栈:用来存档基本数据类型,如int类型或16进制的地址。栈的数据会随着方法执行结束而自动清理。先进后出 堆:用来存放对象,如当对一个person实例p的name属性(name是string类型的)赋值时,先找栈对应的数据,发现是个地址,于是拿着地址去堆中找到地址对应的值。堆中的数据不会自动清理,因为数据可能在别的地方被引用。 数组中存放的是每个数据的地址,所以是栈
发表于 2021-04-24 08:26:59 回复(0)
A不对吧,JAVA中new出来的变量是放在堆中 ???
发表于 2021-03-17 21:04:33 回复(0)
A选项不严谨,由程序员分配空间(new、malloc),都不会放在栈中
编辑于 2020-06-01 16:13:49 回复(0)
静态数组呢
发表于 2019-11-11 19:12:51 回复(0)
new出来的数组就不是数组?
发表于 2019-08-24 10:50:17 回复(0)