数据结构双链表实现代码

数据结构双链表实现代码

ID:44869123

大小:34.01 KB

页数:3页

时间:2019-10-31

数据结构双链表实现代码_第1页
数据结构双链表实现代码_第2页
数据结构双链表实现代码_第3页
资源描述:

《数据结构双链表实现代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构双链表实现函数#include#include/*――――――――――――双向链表的定义――――――――――――*/structllist{structllist*prior;intnum;structllist*next;};typedefstructllistnode;typedefnode*llink;/*――――――――――――双向链表的输出――――――――――――*/voidprintllist(llinkhead){llinkptr;ptr=head->next;while(ptr!=NULL){printf("[%d]",ptr

2、->num);ptr=ptr->next;}printf("");}/*――――――――――――双向链表的倒序输出――――――――――*/voidprintllist2(llinkhead){llinkptr;ptr=head;while(ptr->next!=NULL){ptr=ptr->next;}while(ptr!=head){printf("[%d]",ptr->num);ptr=ptr->prior;}printf("");}/*――――――――――――双向链表的创建―――――――――――*/llinkcreatellist(int*array,intlen){lli

3、nkhead;/*双向链表的开始指针*/llinkptr,ptr1;inti;/*建立开头结点*/head=(llink)malloc(sizeof(node));/*分配内存*/if(!head)/*检查指针*/returnNULL;ptr=head;/*将ptr指向链表开始*/for(i=0;inum=array[i];/*建立结点内容*/ptr1->next=NULL;/*设定指针初值*/ptr1->prior=NULL;

4、ptr->next=ptr1;/*连接结点*/ptr1->prior=ptr;ptr=ptr->next;}returnhead;}/*―――――――――――双向链表的结点插入――――――――――*/llinkinsertnode(llinkhead,llinkptr,intvalue){llinknew1,ptr1=head;/*新结点指针变量*/while(ptr1!=ptr)ptr1=ptr1->next;if(!ptr1){printf("找不到插入位置,插入位置有误");returnhead;}new1=(llink)malloc(sizeof(node));if(!new

5、1)returnNULL;new1->num=value;/*设定初值*/new1->next=NULL;new1->prior=NULL;new1->next=ptr->next;/*交换4个指针*/ptr->next->prior=new1;ptr->next=new1;new1->prior=ptr;returnhead;/*返回头结点*/}/*―――――――――――双向链表的结点删除――――――――――-*/llinkdeletenode(llinkhead,llinkptr){if(!(head->next)){/*链表为空直接返回头指针*/printf("删除链表为空")

6、;returnhead;}llinkprevious;previous=head;if(ptr){while(previous->next!=ptr)/*找结点ptr前一结点*/previous=previous->next;/*找结点ptr前一结点之后进行删除操作*/previous->next=ptr->next;ptr->next->prior=previous;/*删除中间结点*/}else{while(previous->next->next!=NULL)previous=previous->next;ptr=previous->next;previous->next=ptr-

7、>next;}free(ptr);returnhead;/*返回头结点*/}/*―――――――――――――主程序――――――――――――――*/voidmain(){intllist1[6]={1,2,3,4,5,6};llinkhead;/*建立链表并输出*/head=createllist(llist1,6);if(!head){printf("内存分配失败!");exit(1);}printf("原来的链表:");prin

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

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

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