首页 > 编程知识 正文

双向链表的创建,c语言双向链表

时间:2023-05-06 08:59:12 阅读:48281 作者:4470

实现双向链表的基本操作1 .初始定义2 .初始化循环链表3 .输入指定长度的数据4 .插入元素操作5 .删除元素操作6 .遍历打印元素

1 .初始定义# define true1# define false0# defineo k1 # define error0# define infeasible-1 # define overflow-2类型定义int status; 类型def int elemtype; typedefstructdualnode { elemtype数据; 结构双节点* prior; //上一个指针struct DualNode *next; //后指针}DualNode,*DuLinkList; 2 .循环链表statuscreatedualnode (dulinklistl )//目标节点l=(dulin klist ) malloc (sizeof ) dualnode ); if(L==null ) (/空间分配失败cout'ERROR '; 返回错误; (} L-prior=NULL; L-next=NULL; L-data=0; //保存数据数return OK; } 3.指定长度的数据statuscreatelist(DulinklistL,int length ) if (length=0) return ERROR; 创建双节点(l; //初始化标头节点DuLinkList p=L; for(intI=0; ilength; I )//存储I个数据的Dulinklistbody=(Dulinklist ) malloc(sizeof ) dualnode ); Sanf('%d”,主体数据); //输入数据L-data; //长度1 p-next=body; //用于设置指针连接新元素body-prior=p的body-next=NULL; p=p-next; }返回确定; } 4.插入元素操作statuslistinsert _ dul (dulinklistl,int i,ElemType e ) /在第I个元素之前输入if ) I=0||||I=L-data1 ) {/I的值if (! (s=(杜林基列表) malloc(sizeof ) dualnode () ) ) {返回错误; } S-data=e; DuLinkList p=L; 将while(p-next )//p移动到最后一个p=p-next; } S-next=NULL; S-prior=p; //要连接的p-next=S; L -数据; 返回确定; } else{ DuLinkList S; if (! (s=(杜林基列表) malloc(sizeof ) dualnode () ) ) {返回错误; } S-data=e; DuLinkList p=L; for(intj=0; ji; j ) (将/p移动到指定的第I个元素的位置的p=p-next; } S-prior=p-prior; 连接到p-prior-next=S的S-next=p; PP=s; L -数据; 返回确定; }5.删除元素操作删除第statuslistdelete _ dul (dulinklistl,int i,ElemType e )//I个位置的元素,并用e返回其值DuLinkList p=L; int j=0; if(I=1il-data(//I值合法for ) j=0; ji; j ) { p=p-next; //移动到指定元素} e=p-data; p-prior-next=p-next; //进行前一元素和后一元素连接的p-next-prior=p-prior; free(p; L-data--; //长度减去1 return ok } else if (I==l-data ) /删除最后一个元素单独处理for (j=0; ji; j ) { p=p-next; (} e=p -数据; p-prior-next=NULL; //p前元素的next为空自由(p ); L-data--; //长度减去1 return OK.打印元素statusshowdullinklist (dulinklistl ) { DuLinkList p=L-next; while(p ) { coutp-data; p=p-next; }返回确定; }

——————END——————

作者注:

记录学习,分享经验。

如果有兴趣的话会关注博客,今后也会继续更新内容哦~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。