假定已建立以下链表结构,且指针 p 和 q 已指向如图所示的结点:
则以下选项中可将 q 所指向结点从链表中删除并释放该结点的语句组是
A. (*p).next=(*q).next; free(p);
B. p=q->next; free(q);
C. p=q; free(q);
D. p->next=q->next; free(q);
现有以下结构体说明和变量定义,如图所示,指针 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;