程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、P、q、均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。
该程序段实现的功能是( )。
A.首结点成为尾结点
B.尾结点成为首结点
C.删除首结点
D.删除尾结点
第1题:
假定已建立以下链表结构,且指针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);
第2题:
若已建立如下图所示的单向链表结构:在该链表结构中,指针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;
第3题:
假设某个单向循环链表的长度大于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
第4题:
假定已建立以下链表结构,且指针p和q已指向如图所示的结点:
A.A
B.B
C.C
D.D
第5题:
单向链表的链域为next,设指针p指向单向链表中的某个结点,指针S指向一个要插入链表的新结点,现要把s所指结点插入p所指结点之后,某学生采用以下语句:p->next==s;s->next==p->next;这样做正确吗?若正确则回答正确,若不正确则说明应如何改写。
略