C语言指针链表.docVIP

  • 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)

1亿VIP精品文档

相关文档