- 3
- 0
- 约3.57千字
- 约 5页
- 2017-08-26 发布于河南
- 举报
/**
*时间:2010年8月28日17:19:49
*功能:C语言实现单链表的建立、输入、插入、删除、查找元素并返回位置#includestdio.h
#includestdlib.h
#includemalloc.h
/*假设输入的数据为3个--我比较好操作-_-*/
#define size 3
typedef struct List
{
int num;
int shuju;
struct List *next;
}list;
/*头结点*/
list *setup_list(list *head)
{
printf(setup_list\n);
head=malloc(sizeof(list));
if(head==NULL)
{
printf(setup fail\n);
getch();
exit(0);
}
head-num=NULL;
head-shuju=NULL;
head-next=NULL;
printf(setup success\n);
return head;
}
/*输入数据*/
void input(list *head,int num)
{
list *q=NULL;
list *s=NULL;
s=malloc(sizeof(list));
s-next=NULL;
printf(input the %d data:,num);
scanf(%d,s-shuju);
s-num=num;
q=head;
while(q-next!=NULL)
{
q=q-next;
}
q-next=s;
}
/*浏览*/
void browse(list *head)
{
list *q=NULL;
q=head-next;
while(q!=NULL)
{
printf(num:%d\n,q-num);
printf(shuju:%d\n,q-shuju);
q=q-next;
}
}
/*插入num值有主函数控制*/
void insert_list(list *head,int num)
{
list *q=NULL;
list *p=NULL;
list *s=NULL;
q=head;
p=q-next;
while(p!=NULLp-num!=num)
{
q=p;
p=q-next;
}
s=malloc(sizeof(list));
printf(input shuju);
scanf(%d,s-shuju);
s-num=num;
q-next=s;
s-next=p;
/*整理 num后面的数后推*/
while(p!=NULL)
{
num++;
p-num=num;
p=p-next;
}
}
void delete_list(list *head,int num)
{
list *q=NULL;
list *p=NULL;
q=head;
p=q-next;
while(p!=NULLp-num!=num)
{
q=p;
p=q-next;
}
q-next=p-next;
free(p);
printf(num %d\n,num);
p=q-next;
while(p!=NULL)
{
p-num=num;
num++;
p=p-next;
}
}
/*查找元素 并返回位置*/
list *find_list(list *head,int data)
{
list *q=NULL;
list *p=NULL;
q=head;
p=q-next;
while(p!=NULLp-shuju!=data)
{
q=p;
p=q-next;
}
printf(num :%d data : %d\n,p-num,p-shuju
原创力文档

文档评论(0)