#include stdio.h
#include stdlib.h
//
/*实现链表的头文件、文件名slnklist.h */
//
typedef int datatype;
typedef struct link_node{
datatype info;
struct link_node *next;
}node;
typedef node *linklist;
//
/函数名称: creatbystack(/
(函数功能)使用头插入法创建单个链接列表/
//
链接列表创建堆栈(
{ linklist head,s;
datatype x;
头=空;
printf (“请输入一些整数序列:n”)
scanf('%d ',x );
while(x!=0)/0时结束输入/
{s=(linklist ) malloc (sizeof ) node ); /生成要插入的节点/
s-info=x;
s-next=head; /将新节点插入链表的开头/
头=s;
scanf('%d ',x );
}
返回头; /返回到创建的单链表/
}
//
/函数名称: creatbyqueue(/
(函数功能)尾插法创建单链接列表/
//
链接列表creatbyqueue (
{
linklist head,r,s;
datatype x;
头=r=空;
printf (“请输入一些整数序列:n”)
scanf('%d ',x );
while(x!=0)/0时结束输入/
{s=(linklist ) malloc (sizeof ) node );
s-info=x;
if (头=空) /在链表的末尾插入新节点/
头=s;
else
r-next=s;
r=s;
scanf('%d ',x );
}
if r-next=NULL;
返回头; /返回到创建的单链表/
}
//
/函数名称: print () /
(函数功能)输出没有开头节点的单链接列表/
//
void print (链接列表)。
{ link list p;}
int i=0;
p=head;
打印(“listis :n”);
while
{
printf ()、p-info ();
p=p-next;
I;
if(I==0) printf () (n );
}
打印((n );
}
//
/函数名称: delList () /
(函数功能)释放没有开头节点的单链接列表/
//
voiddellist (链接列表) )。
{ linklist p=head;
while
{ head=p-next;
自由;
p=head;
}
}