C语言程序设计(47)

来源:百度知道 编辑:UC知道 时间:2024/05/18 11:34:15
程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。
(图,见
http://www.freep.cn/p.aspxu=v20__p_0709151724551978_0.bmp&click=1

若有以下程序段
q=s;s=s->next;p=s;
while(p->next) p=p->next;
p->next=q;q->next=NULL;

该程序段实现的功能是?

首结点成为尾结点
尾结点成为首结点
删除首结点
删除尾结点

why?
图的地址是这个
http://www.freep.cn/p.aspx?u=v20__p_0709151727384129_0.bmp

首结点成为尾结点

q=s;s=s->next;p=s;
while(p->next) p=p->next;
操作结果是P指向a,S指向b,P指向c

p->next=q;的意思其实就是让c的NEXT域指向a
q->next=NULL;置a的NEXT域为NULL,此时S指向的b变为头结点,符合题意,因此..........

首结点成为尾结点