版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——C语言数据结构实现链表逆序并输出C语言数据布局实现链表逆序并输出
将一个链表逆序并输出。可以用两种方法来实现,第一种是借助了一个新的空链表;其次种是在原来链表的根基上直接实现逆序。下面我带大家一起来看看细致内容,梦想对大家有所扶助!想了解更多相关信息请持续关注我们我!
实例代码:
头文件:
#includestdio.h
#includestdlib.h
#includemalloc.h
typedefintElemType;
typedefstructNode
//结点布局
ElemTypevalue;//值域
structNode*next;//指针域
Node,*ptr_Node;
typedefstructLinkList
//链表布局
ptr_Nodehead;//链表头结点指针
ptr_Nodetail;//链表尾结点指针
intlength;//链表长度
LinkList,*ptr_LinkList;
ptr_LinkListCreateListvoid
//创造一个空链表
ptr_LinkListlinklist;
linklist=LinkList*mallocsizeofLinkList;
if!linklist
printfallocationfailed.\n;
linklist-head=NULL;
linklist-tail=NULL;
linklist-length=0;
returnlinklist;
boolIsListEmptyptr_LinkListlinklist
//判断链表是否为空
iflinklist-length==0
returntrue;
returnfalse;
voidInsertListHeadptr_LinkListlinklist,ElemTypeelement
//在表头插入值为element的结点作为新的表头
ptr_Nodeptr_node;
ptr_node=Node*mallocsizeofNode;//生成插入结点
if!ptr_node
printfallocationfailed.\n;
else
ptr_node-value=element;
iflinklist-length==0
linklist-head=ptr_node;
linklist-tail=linklist-head;
linklist-tail-next=NULL;
else
ptr_node-next=linklist-head;
linklist-head=ptr_node;//链表头
linklist-length++;//链表长度加1
voidInsertListTailptr_LinkListlinklist,ElemTypeelement
ptr_Nodeptr_node;
ptr_node=Node*mallocsizeofNode;//生成插入结点
if!ptr_node
printfallocationfailed.\n;
else
ptr_node-value=element;
iflinklist-length==0
linklist-head=ptr_node;
linklist-tail=linklist-head;
linklist-tail-next=NULL;
else
linklist-tail-next=ptr_node;
linklist-tail=ptr_node;//链表尾
linklist-length++;//链表长度加1
voidInsertListPositionptr_LinkListlinklist,intpos,ElemTypeelement
inti;
ptr_Nodeptr_node;
ptr_Nodetemp_ptr_node;
ifpos1||poslinklist-length
printfTheinsertpositionisinvalidate.\n;
else
ptr_node=Node*mallocsizeofNode;//生成插入结点
if!ptr_node
printfallocationfailed.\n;
ptr_node-value=element;
ifpos==1
InsertListHeadlinklist,element;
elseifpos==linklist-length
InsertListTaillinklist,element;
else
temp_ptr_node=linklist-head;
fori=1;ipos-1;i++
//找到第pos-1个结点
temp_ptr_node=temp_ptr_node-next;
ptr_node-next=temp_ptr_node-next;
temp_ptr_node-next=ptr_node;
linklist-length++;
voidDestroyptr_LinkListlinklist
//销毁链表
ptr_Nodep=linklist-head;
ptr_Nodeq;
whilep
//释放每个结点空间
q=p-next;
freep;
p=NULL;
p=q;
voidTraverseptr_LinkListlinklist
//输出整个链表
ptr_Nodep;
p=linklist-head;
whilep
printf%4d,p-value;
p=p-next;
头文件中实现了链表的几个根本的操作,有的是务必的,有些是非务必的。
实现代码:
#includestdafx.h
#includeLinkList.h
#includeconio.h
ptr_LinkListInvertListptr_LinkListlist
//该方法借助一个新的'空链表来实现链表逆序
ptr_LinkListinverted_linklist;
ptr_Nodep;
p=list-head;
inverted_linklist=CreateList;//创造一个空链表
whilep
//将list链表中的结点值逆序输入新创造的链表中,实现链表反转
InsertListHeadinverted_linklist,p-value;
p=p-next;
returninverted_linklist;
voidInvertLinkListptr_LinkListlinklist
//该方法直接对原有链表实现逆序,不借助其他链表
ptr_Nodep,q,r,m;
m=p=linklist-head;
q=p-next;
r=q-next;
whiler
//依次对链表中的结点举行反转
q-next=p;
p=q;
q=r;
r=r-next;
q-next=p;//结果一个结点反转
linklist-head=q;
linklist-tail=m;
linklist-tail-next=NULL;
int_tmainintargc,_TCHAR*argv[]
ptr_LinkListlinklist;
ptr_LinkListlist;
linklist=CreateList;
iflinklist
printfWehavecreatedanewlinklist.\n;
InsertListHeadlinklist,12;
InsertListHeadlinklist,35;
InsertListHeadlinklist,66;
InsertListHeadlinklist,06;
InsertListHeadlinklist,11;
InsertListHeadlinklist,54;
InsertListHeadlinklist,79;
Traverselinklist;
printf\n;
printfThefirstmethod:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津中医药大学第一附属医院招聘20人备考题库及完整答案详解一套
- 3D打印导板在神经外科手术中的精准设计与精准定制
- 2025年宁波市升力同创科技咨询服务有限公司招聘备考题库有答案详解
- 3D打印个性化骨缺损修复支架的血管化策略
- 2型糖尿病神经病变的早期预防社区实践
- 上海市2025年事业单位公开招聘高层次急需紧缺专业技术人才备考题库及完整答案详解1套
- 2025年韶山旅游发展集团招聘中层管理人员备考题库带答案详解
- 2025年马鞍山市住房公积金管理中心编外聘用人员招聘备考题库完整答案详解
- 核工业井巷建设集团有限公司2026年校园招聘备考题库及答案详解参考
- 2025年金华市轨道交通控股集团有限公司财务岗应届毕业生招聘备考题库完整参考答案详解
- 2025云南省人民检察院招聘22人考试笔试备考题库及答案解析
- 2025国家统计局齐齐哈尔调查队招聘公益性岗位5人笔试考试备考题库及答案解析
- 全膀胱切除课件
- 护理质量改进工具:深入解析PDCA
- 承重载荷管理制度范本(3篇)
- 工程质量检测工作总体思路
- 线性规划完整课件
- GB/T 46423-2025长输天然气管道放空回收技术规范
- 现代精细化工生产技术 课件 模块1-4 表面活性剂 -涂料
- 合伙开母婴店协议合同
- 冷库安全培训演练课件
评论
0/150
提交评论