假设双链表结点的类型如下:
Typedef struct linknode
int data; /*数据域*/
struct linknode *llink; /*llink是指向前驱结点的指针域*/
struct linknode *rlink; /*rlink是指向后续结点的指针域*/
bnode
下面给出的算法段是要把一个q所指的新结点作为非空双向链表中的p所指结点的前驱结点插入到该双链表中,能正确完成要求的算法段是 (32) 。
A:q->rlink=p;q->llink=p->llink;p->llink=q;p->llink->rlink=q; B:p->llink=q;q->rlink=p;p->llink->rlink=q:q->llink=p->llink; C:q->llink=p->llink:q->rlink=p;p->llink->rlink=q;p->llink=q; D:以上都不对
在双向循环链表中,在P指针所指向的结点前插入一个指针q所指向的新结点,其修改指针的操作是()。
A:P->llink=q;q->rlink=p;P->llink->rlink=q;q->llink=p; B:P->llink=q;P->llink->rlink=q;q->rlink=p;q->llink=p->llink; C:q->rlink=p;q->liink=p->llink;P->llink->rlink=q;P->llink=q; D:q->llink=p->llink;q->rlink=p;P->llink=q;P->rlink=q;
有以下结构体说明和变量定义,如下图所示,指针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=p; D:q->next=r->next;r->next=q;p->next=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; p->next=r; q->next=r->next; r->next=q; B:q->next=r->next; r->next=q; p->next=r; r->next=q; p->next=r; q->next=r->next;
有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。 struct node int data; struct node*next; *p,*q,*r;
现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是()。
A:q->next=r->next;r->next=q;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:r->next=q;q->next=r->next;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、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=r->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、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、q、r分别指向—个链表中连续的三个结点。 street 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=r->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、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;