欢迎来到天天文库
浏览记录
ID:34707762
大小:47.64 KB
页数:4页
时间:2019-03-09
《c语言数据结构(链表)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言数据结构(链表)1.把元素x插入表中并保持链表的有序性;2.查找值为x的元素,若找到将其删除;3.输出表中各元素的值。#include#includetypedefstructNode//结点类型定义{intdata;structNode*next;}Node,*LinkList;InitList(LinkList*L){*L=(LinkList)malloc(sizeof(Node));(*L)->next=NULL;}voidGreateTail(LinkListL)//尾插法{Node*s,*r;intn,flag=1;r=L;while(f
2、lag){scanf("%d",&n);if(n!=0){s=(Node*)malloc(sizeof(Node));s->data=n;r->next=s;r=s;}else{flag=0;r->next=NULL;}}}Node*Find_Del(LinkListL,intk)//在单链表L中查找数据为k的元素,找到后并删除{Node*p,*r=L;p=L->next;while(p!=NULL)if(p->data!=k){p=p->next;r=r->next;}elsebreak;if(p==NULL){printf("该有序数列中无此数据!");printf("请重新输入数据
3、:");scanf("d",&k);//}p=r->next;r->next=p->next;returnp;free(p);}voidInsert(LinkListL,inte){LinkListp=L->next,q=L,s;if(p->next==NULL){printf("这是一个空表");}else{while(p&&(p->data<=e)){q=p;p=p->next;}if(p&&(p->data>=e)){s=(LinkList)malloc(sizeof(Node));s->data=e;s->next=p;q->next=s;}else{s=(LinkList
4、)malloc(sizeof(Node));s->data=e;s->next=NULL;q->next=s;}}}voidprint(LinkListL){LinkListp=L->next;while(p){printf("%d",p->data);p=p->next;}}voidmain(){intk,e;LinkListL;InitList(&L);while(1){printf("请输入一行有序数列,以零结束!");//------赋值GreateTail(L);printf("该有序数列:");print(L);printf("");printf("请输入要插入的
5、值:");scanf("%d",&e);Insert(L,e);printf("插入之后有序链表:");//------插入print(L);printf("");printf("输入你要删除的元素:");//--查找并删除scanf("%d",&k);Find_Del(L,k);printf("删除k后的链表是:");print(L);printf("");}}
此文档下载收益归作者所有