欢迎来到天天文库
浏览记录
ID:12426434
大小:36.50 KB
页数:8页
时间:2018-07-17
《数据结构(单链表)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、//头文件list.h#include"stdlib.h"#include"stdio.h"typedefcharEleType;typedefstructnode{EleTypedata;structnode*next;}ChainNode;typedefstruct{ChainNode*head;}List;List*CreatList();ChainNode*NewChainNode(EleTypedata);List*NodeAppend(List*lp,EleTypedata);ChainNode*GetAddr(List*lp,intn);List*NodeDelete
2、(List*lp,intn);List*NodeAdd(List*lp,intn,EleTypedata);List*CreatList(){List*lp;ChainNode*p;EleTypedata=0;lp=(List*)malloc(sizeof(List));if(!lp)return0;p=NewChainNode(data);if(!p)return0;lp->head=p;returnlp;}ChainNode*NewChainNode(EleTypedata){ChainNode*p;p=(ChainNode*)malloc(sizeof(ChainNode))
3、;if(!p)return0;p->data=data;p->next=0;returnp;}List*NodeAppend(List*lp,EleTypedata){ChainNode*p;ChainNode*p1;p1=NewChainNode(data);if(!p1)return0;p=lp->head;for(p;p->next;p=p->next);p->next=p1;returnlp;}ChainNode*GetAddr(List*lp,intn){ChainNode*p;if(n<0){printf("n<0");return0;}p=lp->head;int
4、a;for(a=0;anext;}returnp;}List*NodeDelete(List*lp,intn){ChainNode*p;ChainNode*p1;p=GetAddr(lp,n-1);if(!p)return0;p1=p->next;p->next=p1->next;free(p1);returnlp;}List*NodeAdd(List*lp,intn,EleTypedata){ChainNode*p;ChainNode*p1;p1=NewChainNode(data);if(!p1)return0;p=GetAddr(lp,n-1)
5、;if(!p)return0;p1->next=p->next;p->next=p1;returnlp;}//测试函数#include"list.h"EleTypearr[]="Helloworld!";voidshowlist(List*lp);voidmain(){inti;List*lp;lp=CreatList();if(!lp)printf("CreatListfailed!");for(i=0;arr[i];i++){NodeAppend(lp,arr[i]);}showlist(lp);NodeDelete(lp,1);showlist(lp);NodeAdd(lp,
6、1,'H');showlist(lp);}voidshowlist(List*lp){ChainNode*p;p=lp->head;for(p=p->next;p;p=p->next)printf("%c",p->data);printf("");}
此文档下载收益归作者所有