#include<stdio.h>
#include<stdlib.h>
typedef struct linknode
{ int data;
struct linknode *next;
}node;
node *head;
int n=0;
void CreateList() /*将待排序数据建立一个带头结点的单链表*/
{
node *p,*s;
int x;
n=0;
head=(node*)malloc(sizeof(node));
p=head;
printf("\n下面将建立一个带头结点的线性表:");
printf("(说明:没输入一个节点,请按一下回车键,结束标记为0)\n");
printf("\n请您输入:(输入 0 即表示输入结束)");
scanf("%d",&x);
while(x!=0)
{
s=(node*)malloc(sizeof(node)); /*申请一个新结点*/
n++;
s->data=x; /*对新结点的data域赋值*/
s->next=NULL; /*对新结点的next域赋空值*/
p->next=s; /*将新结点连接到表的末尾*/
p=s;
/*P指向最后结点*/
if(x!=0)printf("\n下一结点:");
scanf("%d",&x);
}
printf("\n\n哈哈,链表创建成功,现在我们返回主菜单:\n");
}
void Show()
{
int j=0;
node *s;
s=head;
printf("当前链表的所有结点如下:(按照结点的前后顺序排序)\n\n");
for(j=0;j<n;j++)
{
s=s->next;
printf(" %d ",s->data);
}
}