假定已建立以下链表结构,且指针p和q已指向如图所示的节点:则以下选项中可将q所指节点从链表中删
假定已建立以下链表结构,且指针p和q已指向如图所示的节点:
则以下选项中可将q所指节点从链表中删除并释放该节点的语句组是
A.p=q->next;free(q);
B.p=:q;free(q);
C.(*p).next=(*q).next;free(p);
D.p->next=q->next;free(q);
假定已建立以下链表结构,且指针p和q已指向如图所示的节点:
则以下选项中可将q所指节点从链表中删除并释放该节点的语句组是
A.p=q->next;free(q);
B.p=:q;free(q);
C.(*p).next=(*q).next;free(p);
D.p->next=q->next;free(q);
若已建立以下链表结构,指针P、S分别指向如图所示结点
则不能将S所指节点插入到链表末尾的语句组是
A.S->next="\0";p:P->next;P->next=s;
B.p=p->next;S->next=p;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;
A.p=p->next;s->next=p;p->next=s:
B.p=p->next;s->next=p->next;p->next=s;
C.s->next=NULL;p=p->next;p->next=s:
D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;
struc 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;
设线性表为(1,13,16,18) ,以下程序用说明结构变量的方法建立头指针为head,尾结,点为18的单向循环链表,并输出链表中各结点中的数据。
#define NULL 0
Void main()
{
NODE a,b,c,d,*head,*p;
a.data=1;
b.data=13;
c.data=16;
d.data=18; /* d是尾结点*/
head=();
a.next=&b;
d.data=18; /* d是尾结点*/
head=();
a.next=&b;
b.next=&c;
c.next=&d;
()=head; /*以上结束建立循环链表的过程*/
p=head; /* p为工作指针,准备输出链表*/
do
{
printf("%d/n",());
();
}while();
}