有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。 struct node { int data; tract node * next; }*p,*q,*r; 现要将q和r所指结点的先后位

admin2013-02-23  521

问题 有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。    struct node    { int  data;      tract 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;

答案1

解析 题目中要求将q和r所指结点的先后位置交换,即要求p所指结点的指针域指向r所指向的结点,r所指向的结点的指针域指向q所指向的结点,q所指向的结点的指针域指向r所指向的结点。选项A首先让r所指向的指针的指针域指向q所指向的结点,这样就将r所指向的结点的指针域指向的结点丢失了。选项B首先q所指向的结点的指针域指向r所指向的结点的指针域所指向的结点,然后,让p所指向结点的指针域指向r所指向的结点,最后让r所指向的结点的指针域指向q所指向的结点,满足要求。选项C首先让p所指向结点的指针域指向r所指向的结点,然后让q所指向的结点的指针域指向r所指向的结点的指针域所指向的结点,最后让r所指向的结点的指针域指向q所指向的结点,满足要求。选项D首先让q所指向的结点的指针域指向r所指向的结点的指针域所指向的结点,然后,让r所指向的结点的指针域指向q所指向的结点,最后让P所指向结点的指针域指向r所指向的结点,满足要求。
转载请注明原文地址:https://kaotiyun.com/show/DsJp777K
0

最新回复(0)