求循环链表中当前结点的后继和前驱的时间复杂度分别是()。
A.O(n)和O(1)
B.O(1)和O(1)
C.O(1)和O(n)
D.O(n)和O(n)
A.O(n)和O(1)
B.O(1)和O(1)
C.O(1)和O(n)
D.O(n)和O(n)
设有一头指针为L的带有表头结点的非循环双向链表,其每个结点中除有pred(前驱指针)、data(数据)和next(后继指针)域外,还有一个访问频度域freq。在链表被起用前,其值均初始化为零。每当在链表中进行一次Locate(L,x)运算时,令元素值为x的结点中freq域的值增1,并使此链表中结点保持按访问频度非增(递减)的顺序排列,同时最近访问的结点排在频度相同的结点的最后,以便使频繁访问的结点总是靠近表头。试编写符合上述要求的Locate(L,x)运算的算法,该运算为函数过程,返回找到结点的地址,类型
对双向链表来说,结点*p的存储位置既存放在其前驱结点的后继指针域中,也存放在它的后继结点的前驱指针域中。( )
以下有关链表的说法中,错误的是_________。
A.对单链表来说,寻找结点的后继比较容易
B.对循环链表来说,从任一结点出发,都可以遍历整个链表
C.对双链表来说,寻找结点的前趋和后继都比较容易
D.对于静态链表来说,可以随机存取结点中的数据
已知sq是带头结点的非空单链表,且*p结点既不是第一个结点,也不是最后一个结点,则
①删除*p结点的直接后继结点的语句序列。
②删除*p结点的直接前驱结点的语句序列。
③删除*p结点的语句序列。
④删除第一个结点的语句序列。
⑤删除最后一个结点的语句序列。
A.p一>prior=q;q->next=p;p一>prior一>next=q;q一>prior=p一>prior;
B.q->prior=p->prior;p->prior一>next=q;q一>next=p;p->prior=q->next;
C.q->next=p;p一>next=q;p->prior一>next=q;q->next=p;
D.p->prior一>next=q;q->next=p;q->prior=p一>prior;p->prior=q;