己知一个带有表头结点的双向循环链表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: 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);
举一反三
- 在双向链表存储结构中,删除p所指的结点时须修改指针() A: (p->prior)->next=p->next;(p->next)->prior=p->prior; B: p->prior=(p->prior)->prior;(p->prior)->next=p; C: (p->next)->prior=p;p->rlink=(p->next)->next; D: p->next=(p->prior)->prior;p->prior=(p->next)->next
- 在一单链表中,删除指针p所指的后继结点,以下语句正确的是() A: p=p-> next; B: s=p-> next;p-> next=s- <br/>>next;free (s) ; C: free (p-> next) ;p- <br/>>next=p-> next-> next; D: p-> next=p-> next- <br/>>next; free (p-> next) ;
- 若已建立以下链表结构,指针p、s分别指向如图所示结点。 则不能将s所指结点插入到链表末尾的语句组是______。 A: p=p->next; s ->next=p; p->next=s; B: s ->next='\0'; p=p->next; p->next=s; C: p=p->next; s ->next=p->next; p->next=s; D: p=(*p).next; (*s ).next=(*p).next; (*p).next=s;
- 在一个带头结点的单链表HL中,若要在第一个元素之前插入一个由指针p指向的结点,则执行( )。 A: p->next = HI ;p =HL ; B: p->next = HL ;HL =p ; C: p->next = HL ->next; HL ->next =p; D: HL =p; p->next =HL ;
- 在双向链表存储结构中,删除p所指的结点的前趋结点(若存在)时需修改指针( ) A: ((p->llink) ->llink) ->rlink=p; p->llink=(p->llink) ->llink; B: ((p->rlink) ->rlink) ->llink=p; p->rlink=(p->rlink) ->rlink; C: (p->llink) ->rlink=p->rlink; (p->rlink) ->llink=p->llink; D: p->llink=(p->llink) ->llink; ((p->llink) ->llink) ->rlink=p;