首页 > 试题广场 >

如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最

[单选题]

如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最节省时间。

  • 单链表
  • 双链表
  • 单循环链表
  • 顺序表
看到取其前驱节点自然反应的就选了双链表。。。。。。
发表于 2017-12-04 21:53:19 回复(9)
容易错误选择双链表,是因为直观的看到“前驱”。实际题目说的是“取”前驱,应该理解为读前驱,这是顺序表的优势所在,时间复杂度为O(1);当进行插入或删除操作时由于顺序表可能需要移动的元素较多,不如双链表方便。
发表于 2018-03-01 14:59:40 回复(0)
注意:题目说的是取,并不是插入和删除,对于顺序表,同样也可以往前一位找到其前驱,毕竟其地址是连续的。
发表于 2020-03-21 21:18:22 回复(0)

答案:D

线性表中最常用的操作是取第i个元素,所以,应选择随机存取结构即顺序表,同时在顺序表中查找第i个元素的前趋也很方便。

单链表和单循环链表既不能实现随机存取,查找第i个元素的前趋也不方便,双链表虽然能快速查找第i个元素的前趋,但不能实现随机存取

顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中。

通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。

发表于 2019-04-04 16:11:57 回复(0)
顺序表也可以通过下标快速地找到它的前驱
发表于 2018-03-13 14:36:11 回复(0)
顺序表比链表少了需要维护的指针,所以节省的空间更小一些
发表于 2017-08-09 17:35:04 回复(1)
everybody,要看清题啊,是取操作,也就是查询,而不是插入或者删除!!
发表于 2019-03-25 17:26:06 回复(0)
每次插入和删除结点,都需要从表头开始遍历至要插入或者删除结点的前一个结点,而这个过程所花费的时间和访问结点所花费的时间是一样的,即O(n).而顺序表访问节点就如前面回答所说为O(1)
发表于 2022-05-13 16:34:23 回复(0)
题目说的是取,并不是插入和删除,对于顺序表,同样也可以往前一位找到其前驱,其地址是连续的。
发表于 2021-10-29 11:35:12 回复(0)
实际上顺序表在取第i个节点时 就已经可以取到它的前驱元 第i-1个节点。当然,双链表更没有问题。
如果真像题目里说的只考虑时间复杂度的话 双链表和顺序表基本一样。
但是如果考虑到空间复杂度,应该取顺序表(可以少维护一个指针)。
所以,题目有点争议,最好改成“哪种方法最节省空间”
编辑于 2018-08-12 11:53:32 回复(0)
顺序表元素之间的逻辑关系(前驱后继关系)通过下标体现出来的。
发表于 2018-04-03 18:46:43 回复(0)