在单链表中,要将s所指节点插入到p所指节点之后,其语句应为()。
A. s->next=p+1; p->next=s;
B. (*p).next=s; (*s).next=(*p).next;
C. s->next=p->next; p->next=s->next;
D. s->next=p->next; p->next=s;
查看答案
在双向链表存储结构中,删除p所指的节点时须修改指针()。
A. p->prior->next=p->next; p->next->prior=p->prior;
B. p->next=p->next->next; p->next->prior=p;
C. p-prior->next=p; p->prior=p->prior->prior;
D. p->prior=p->next->next; p->next=p->prior->prior;
在双向循环链表中,在p指针所指的节点后插入q所指向的新节点,其修改指针的操作是()。
A. p->next=q; q->prior=p; p->next->prior=q; q->next=q;
B. p->next=q; p->next->prior=q; q->prior=p; q->next=p->next;
C. q->prior=p; q->next=p->next; p->next->prior=q; p->next=q;
D. q->prior=p; q->next=p->next; p->next=q; p->next->prior=q;
已知一个带有表头结点的双向循环链表L,节点结构为prev/data/next,其中,prev和next分别是指向其前驱和后继节点的指针,现要删除指针p所指的节点,正确的语句序列是()。
A. p->next->prev=p->prev; p->prev->next=p->prev; free(p);
B. p->next->prev=p->next; p->prev->next=p->next; free(p);
C. p->next->prev=p->next; p->prev->next=p->prev; free(p);
D. p->next->prev=p->prev; p->prev->next=p->next; free(p);
访问单链表中当前节点的后继和前驱的时间复杂度分别是()。
A. O(n)和O(1)
B. O(1)和O(1)
C. O(1)和O(n)
D. O(n)和O(n)