您的位置:首页 > 其它

单链表的程序实现

2015-11-16 20:29 351 查看
#include<stdio.h>
//#include<malloc.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node * pnext;
}NODE, * PNODE;
PNODE create_list()
{
PNODE phead=(PNODE)malloc(sizeof(NODE));
if(phead==NULL)
{
printf("内存分配失败,程序终止。\n");
exit(-1);
}

int val,len,i;
printf("请输入您要建立的链表的长度:");
scanf("%d",&len);
PNODE ptail;
ptail=phead;
for(i=0;i<len;i++)
{
PNODE pnew=(PNODE)malloc(sizeof(NODE));
if(pnew==NULL)
{
printf("内存分配失败,程序终止。\n");
exit(-1);
}
printf("请输入第%d个节点的值:",i+1);
scanf("%d",&val);
pnew->data =val;
ptail->pnext =pnew;
pnew->pnext =NULL;
ptail=pnew;
}
return phead;
}
int length(PNODE phead)
{
PNODE p=phead->pnext;
int n=0;
while(p)
{
n++;
p=p->pnext;
}
return n;
}
void traverse_list(PNODE phead,int len)
{
int i;
PNODE p=phead->pnext;
for(i=0;i<len;i++)
{
printf("%d ",p->data);
p=p->pnext ;
}
printf("\n");
}
int main(void)
{
PNODE phead;
int len;
phead=create_list();
len=length(phead);
printf("链表的长度是%d\n",len);
traverse_list(phead,len);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: