数据结构与算法单链表的实现

数据结构与算法单链表的实现

ID:35620688

大小:15.71 KB

页数:9页

时间:2019-04-03

数据结构与算法单链表的实现_第1页
数据结构与算法单链表的实现_第2页
数据结构与算法单链表的实现_第3页
数据结构与算法单链表的实现_第4页
数据结构与算法单链表的实现_第5页
资源描述:

《数据结构与算法单链表的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单链表的实现实现单链表的基本操作,必须包括初始化链表(元素为空)、销毁链表、求表长、查找、插入、删除、遍历(打印)等操作。请编写程序,实现上述单链表的基本操作。注意:1.元素类型可以自定义2.可以是带头结点的单链表或不带头结点的单链表#include#include#includetypedefintdatatype;typedefstructnode{datatypedata;structnode*next;}LNode,*LinkList;/*//创建不带

2、头结点的单链表LinklistCreate_LinkList(){returnNULL;}*///创建带头结点的单链表LinkListCreate_LinkList(){LinkListL=NULL;L=(LinkList)malloc(sizeof(LNode));if(L)L->next=NULL;returnL;}//打印单链表voidPrint_LinkList(LinkListH){if(H==NULL){printf("?????????");}else{printf("head-->");LinkL

3、istp=H->next;while(p!=NULL){printf("%d",p->data);printf("-->");p=p->next;}printf("");}}//销毁单链表voidDestroy_LinkList(LinkList*H){LinkListp,q;p=*H;while(p){q=p;p=p->next;free(q);}*H=NULL;if(*H==NULL)printf("销毁成功,请退出");elseprintf("销毁失败");}//求表长intLength_LinkL

4、ist(LinkListL){LNode*p=L;intj=0;while(p->next){p=p->next;j++;}returnj;}//表长功能实现voidlength(LinkListL){inti=0;i=Length_LinkList(L);printf("表长:%d",i);}//查找操作//1)按序号查找LNode*Get_LinkList1(LinkListL,inti){LNode*p=L;intj=0;while(p->next!=NULL&&jnext;j++;}if

5、(j==i)returnp;elsereturnNULL;}//2)按值查找即定位intLocate_LinkList2(LinkListL,datatypex){LNode*p=L;inti=0;while(p->data!=x){p=p->next;i++;}returni;}//查找功能实现voidfind(LinkListL){inti,n;LNode*p,*s;datatypex;printf("选择下列功能");printf("t1)按序号查找");printf("t2)按值查找即定位")

6、;scanf("%d",&i);switch(i){case1:printf("请输入第几个元素:");scanf("%d",&n);p=Get_LinkList1(L,n);if(p==NULL)printf("查找失败");elseprintf("您所查找的元素为:%d",p->data);break;case2:printf("请输入元素值:");scanf("%d",&x);i=Locate_LinkList2(L,x);if(i!=0)printf("第%d个元素",i);elseprintf(

7、"查找失败");break;}}//插入intInsert_LinkList(LinkListL,inti,datatypex){LNode*p,*s;p=Get_LinkList1(L,i-1);if(p==NULL){printf("参数i错");return0;}else{s=(LNode*)malloc(sizeof(LNode));s->data=x;s->next=p->next;p->next=s;}return1;}//插入功能实现voidInsert(LinkListL){LNode*p=L

8、;datatypex;inti,a=1;printf("请输入要插入的数:");scanf("%d",&x);printf("请输入要插入的位置:");scanf("%d",&i);a=Insert_LinkList(L,i,x);if(a==1)printf("插入成功");elseprintf("插入失败");}//删除intDel

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。