C语言指针链表
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/**
*时间:2010年8月28日17:19:49
*功能:C语言实现单链表的建立、输入、插入、删除、查找元素并返回位置
*/
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
/*假设输入的数据为3个--我比较好操作-_-*/
#define size 3
exit_list(head);
return;
/*输入异常的时候*/
default:
break;
}
}
}
free(head);
getch();
}
main()
{
int middle=0;
int num=0;
int i=0;
list *head=NULL;
list *s=NULL;/*接收指针case3的指针接收*/
head=setup_list(head);
printf("head->next %d\n",head->next);
/*1插入2删除3查找4浏览5退出*/
*********************************************************
for(;;)
{
printf("input middle:");
scanf("%d",&middle);
switch(middle)
{
case 1:
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;
printf("head->num %d\n",head->num);
printf("head->shuju %\n",head->shuju);
getch();
for(i=0;i<size;i++)
{
input(head,num);
num++;
}
browse(head);
*********************************************************
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;
printf("insert \ninput num:");
scanf("%d",&num);
insert_list(head,num);
break;
case 2:
printf("delete \ninput num:");
scanf("%d",&num);
delete_list(head,num);
{
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)
break;
case 3:
printf("find \ninput data:");
scanf("%d",&num);
s=find_list(head,num); /*数据查找s已经接收,至于你要做什么,我就不懂了,你自己添加*/
break;
case 4:
browse(head);
break;
case 5:
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)
p=p->next;
}
}
void delete_list(list *head,iwk.baidu.comt num)
{
list *q=NULL;
list *p=NULL;
q=head;
p=q->next;
while(p!=NULL&&p->num!=num)
{
q=p;
p=q->next;
}
q->next=p->next;
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!=NULL&&p->num!=num)
{
q=p;
q=head;
p=q->next;
while(p!=NULL&&p->shuju!=data)
{
q=p;
p=q->next;
}
printf("num :%d data : %d\n",p->num,p->shuju);
return p;
}
exit_list(list *head)
{
printf("exit ok");
{
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);
*时间:2010年8月28日17:19:49
*功能:C语言实现单链表的建立、输入、插入、删除、查找元素并返回位置
*/
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
/*假设输入的数据为3个--我比较好操作-_-*/
#define size 3
exit_list(head);
return;
/*输入异常的时候*/
default:
break;
}
}
}
free(head);
getch();
}
main()
{
int middle=0;
int num=0;
int i=0;
list *head=NULL;
list *s=NULL;/*接收指针case3的指针接收*/
head=setup_list(head);
printf("head->next %d\n",head->next);
/*1插入2删除3查找4浏览5退出*/
*********************************************************
for(;;)
{
printf("input middle:");
scanf("%d",&middle);
switch(middle)
{
case 1:
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;
printf("head->num %d\n",head->num);
printf("head->shuju %\n",head->shuju);
getch();
for(i=0;i<size;i++)
{
input(head,num);
num++;
}
browse(head);
*********************************************************
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;
printf("insert \ninput num:");
scanf("%d",&num);
insert_list(head,num);
break;
case 2:
printf("delete \ninput num:");
scanf("%d",&num);
delete_list(head,num);
{
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)
break;
case 3:
printf("find \ninput data:");
scanf("%d",&num);
s=find_list(head,num); /*数据查找s已经接收,至于你要做什么,我就不懂了,你自己添加*/
break;
case 4:
browse(head);
break;
case 5:
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)
p=p->next;
}
}
void delete_list(list *head,iwk.baidu.comt num)
{
list *q=NULL;
list *p=NULL;
q=head;
p=q->next;
while(p!=NULL&&p->num!=num)
{
q=p;
p=q->next;
}
q->next=p->next;
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!=NULL&&p->num!=num)
{
q=p;
q=head;
p=q->next;
while(p!=NULL&&p->shuju!=data)
{
q=p;
p=q->next;
}
printf("num :%d data : %d\n",p->num,p->shuju);
return p;
}
exit_list(list *head)
{
printf("exit ok");
{
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);