分类：电脑/网络-程序设计-C/C++
问题：C语言程序设计（47）程序中已构成如下图所示的不带头结点的单向链 
中已构成如下图所示的不带头结点的单向链表结构，指针变量s、p、q均已正确定义，并用于指向链表结点，指针变量s总是作为头指针指向链表的第一个结点。（图，见附件）若有以下程序段q=s;s=s->next;p=s;while(p->next) p=p->next;p->next=q;q->next=NULL;该程序段实现的功能是？首结点成为尾结点尾结点成为首结点删除首结点删除尾结点why?
回答：答案：首结点成为尾结点
q=s;s=s->next;p=s; /* s指针后移，指向第2个节点，q指针指向首节点 */
while(p->next) p=p->next; /*通过循环使得扫描指针p从链表头走向链表尾，最后指向最后一个节点 */
p->next=q;q->next=NULL;/*将q指针指向的节点连接到p节点之后，成为链表的尾节点，并将q节点的指针域变为空。