已知一个带有表头结点的双向循环链表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)
设一个链表最常用的操作是在末尾插入节点和删除尾节点,则选用()最节省时间。
A. 单链表
B. 单循环链表
C. 带尾指针的单循环链表
D. 带头节点的双循环链表
在一个以L为头指针的单循环链表中,p指针指向链尾的条件是()。
A. p->next==L
B. p->next==NULL
C. p->next->next==L
D. p->data==-1
在循环链表中,将头指针改设为尾指针(rear)后,其首元节点和尾节点的存储位置分别是()。
A. rear和rear->next->next
B. rear->next和rear
C. rear->next->next和rear
D. rear和rear->next