我又有一个问题了... 题目:在需要经常查找结点的前驱与后继的情况下,使用(双链表)比较容易 为什么不是顺序表? 顺序表是随机存取 按理说当找一个结点元素 a[i] 他的前驱a[i-1] ,后继a[i+1],很快就能找到,且在相同情况下 时间复杂度度都是0(1)
补充在顺序表结点的前驱和后继是没有意义的
我又有一个问题了... 题目:在需要经常查找结点的前驱与后继的情况下,使用(双链表)比较容易
答案:2 悬赏:0 手机版
解决时间 2021-03-14 08:23
- 提问者网友:抽煙菂渘情少年
- 2021-03-14 04:19
最佳答案
- 五星知识达人网友:有你哪都是故乡
- 2021-03-14 05:21
顺序表在结点插入删除上的时间复杂度是O(n)
单链表在结点插入删除上的时间复杂度是O(1)
双链表在结点插入删除上的时间复杂度是O(1)
顺序表在结点前驱后继查找上的时间复杂度是O(1)
单链表在结点前驱后继查找上的时间复杂度是O(n)
双链表在结点前驱后继查找上的时间复杂度是O(1)
事实上,在结点概念下,顺序表时一般不会采用的数据结构,因为维护开销太大。
单链表在结点插入删除上的时间复杂度是O(1)
双链表在结点插入删除上的时间复杂度是O(1)
顺序表在结点前驱后继查找上的时间复杂度是O(1)
单链表在结点前驱后继查找上的时间复杂度是O(n)
双链表在结点前驱后继查找上的时间复杂度是O(1)
事实上,在结点概念下,顺序表时一般不会采用的数据结构,因为维护开销太大。
全部回答
- 1楼网友:夜余生
- 2021-03-14 06:27
双向循环链表的单个节点的定义一般是这种形式:
public class doublenode {
private int data; // 数据
private doublenode previous; // 该节点的上个节点
private doublenode next; // 该节点的下个节点
...
} 因为双向循环链表每个节点都包含它的前驱节点和后继节点的指针,所以查找的时间复杂度为o(1)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯