程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针向链表的第—个结点。
若有以下程序段 q=s; s=s->next; p=s; while(p->next) p=p->next; P->next=q; q->next=NULL; 该程序段实现的功能是______。
A.首结点成为尾结点
B.尾结点成为首结点
C.删除首结点
D.删除尾结点
第1题:
在一个单链表中,指针P指向结点是指针S所指向结点的直接前驱结点,从链表中删除S所指向结点的操作为:
A.p=s;
B.s->next=p->next;
C.p->next=s->next;
D.s=p;
第2题:
假设某个单向循环链表的长度大于1,且表中既无头结点也无头指针。已知s为指向链表中某个结点的指针,试编写算法在链表中删除指针s所指结点的前驱结点。 StatusListDelete_CL(LinkList &S) { LinkList p,q; if(S==S->next)return ERROR; q=S; p=S->next; while(){ q=p; p=p->next; } q->next=p->next; free(p); return OK; }
A.p->next!=S
B.p->next==S
C.p!=S
D.p==S
第3题:
设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为()。
A.s->next=p->next;p->next=-s;
B.q->next=s; s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;
第4题:
设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B间插入结点X的操作序列为()。
A.s->next=p->next;p->next=-s;
B.q->next=s; s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;
第5题:
【单选题】设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为()。
A.s->next=p->next;p->next=-s;
B.q->next=s; s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;