有以下结构体说明和变量定义,指针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;
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、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指向单链表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);
- 有以下结构体说明和变量定义,如图所示: struct node {int data; struct node *next;} *p,*q,*r; 现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是______。 A: p->next=q->next; B: p->next=p->next->next; C: p->next=r; D: p=q->next;
- 在一个单链表中,已知 q 是 p 的前趋结点,若在 q 和 p 之间插入结点 s ,则应当执行语句序列( )。 A: s -> next = p -> next; p -> next = s; B: s -> next = q -> next; p -> next = s; C: s -> next = q -> next; q -> next = s; D: q -> next = s; s -> next = p;
- 有以下结构体说明和变量定义,如图所示,指针p,q,r分别指向此链表中三个连续结点。 struct node { int data; struct node *next; } *p,*q,*r;现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是( )。<img src="https://image.zhihuishu.com/zhs/onlineexam/ueditor/201908/5d41300b1269433d8bad4b870f60af39.jpg"/> A: p->next=p->next->next; B: p=q->next; C: p->next=r; D: p->next=q->next;