若有以下程序段 q=s; s=s->next; p=s; while(p->next) p=p->next; P->next=q; q->next=NULL; 该程序段实现的功能是______。
A.首结点成为尾结点
B.尾结点成为首结点
C.删除首结点
D.删除尾结点
[单选题]程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。若
[单选题]若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将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;
[单选题]有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的3个连续结点。 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->neaxt;p->next=r;r->next=q;C.p->next=r;q->next=r->next;r->n
[主观题]以下程序中函数fun的功能是:构成—个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数disp。include<stdio.h>typedef struct node /*链表结点结构*/{ char sub[3];struct node *next;}Node;Node fun(char s) /* 建立链表*/{ ...... }void disp(Node *h){ Node *p;p=h-
[单选题]假定已建立以下链表结构,且指针P和q已指向如图所示的结点:则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是( )。A.p一>next=q一>next;flee(q);B.p=q一>next;free(q);C.p=q;free(q);D.(*p).next=(幸q).next;ffee(p);
[单选题]假定已建立以下链表结构,且指针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);
[单选题]设单链表中结点的结构为(data,link)。已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作?A.s↑.link:=p↑.link;p↑.link:=sB.q↑.link:=s;s↑.link:=pC.p↑.link:=s↑.link;s↑.link:=pD.p↑.link:=s;s↑.link:=q
[单选题]设单链表中结点的结构为(dara,link)。已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作?A.s↑.link:=p↑.link;p↑.link:=sB.q↑.link:=s;s↑.link:=pC.p↑.link:=s↑.link;s↑.link:=pD.p↑.link:=s;s↑.link:=q
[单选题]若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是 ( )A.s->next=NULL;p=p->next;p->next=s;B.p=p->next;s->next=p->next;p->next=s;C.p=p->next;s-next=p;p->next=s;D.p=(*p).next;(* s).next=(* p).next;(* p).next=s;
[填空题] 设单链表的结点结构为(data,next)。已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:();()。