已知指针p指向单链表head中的某个结点,若删除其后继结点,则需执行()。
A: r=p; p->next=r->next; free(r);
B: r=p->next; p=r->next; free(r);
C: r=p->next; p->next=r->next; free(r);
D: r=p->next; r->next=p->next; free(r);
A: r=p; p->next=r->next; free(r);
B: r=p->next; p=r->next; free(r);
C: r=p->next; p->next=r->next; free(r);
D: r=p->next; r->next=p->next; free(r);
举一反三
- 现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中连续的三个结点。 struct node { char data; struct node *next; }*p,*q,*r; 现要将q和r 所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是______。 A: q->next=r->next;p->next=r;r->next=q; B: p->next=r;q->next=->next;r->next=q; C: q->next=r->next;r->next=q;p->next=r; D: r->next=q;p->next=r;q->next=r->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所指的结点时须修改指针() 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、q、r依次指向一个链表中的三个连续结点。struct node { int data struct node *next ; } *p, *q, *r;现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是 A: r->next=q; q->next=r->next; p->next=r; B: q->next=r->next; p->next=r; r->next=q; C: p->next=r; q->next=r->next; r->next=q; D: q->next=r->next; r->next=q; p->next=r;
- 若已建立以下链表结构,指针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;