




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
。单链表l 带头结点#include #include /*带头结点的单链表的操作在该链表中,数据元素是int,我们让头结点的数据域存储链表的实际长度*/*链表节点的类型定义*/struct node int data; struct node *next;/*链表的初始化函数在该函数中要分配头结点存储空间让头指针指向头结点,因此要修改头指针的值,所以传递头指针的地址进来*/void init(struct node *h) struct node *s;s = (struct node *)malloc(sizeof(struct node);if(s=NULL) return;/*头结点的数据域存储链表的长度*/ s-data=0;s-next=NULL;/*让头指针指向头结点*/ *h = s;/*创建链表,仍然按照逆序创建,从后往前输入元素的值,然后把新结点插入到表头*/void createLink(struct node *h) struct node *s;int n;while(1) scanf(%d,&n); /*根据实际情况判断链表的元素 输入结束 还有一种情况就是找不到合适的 作为结束标记的值 先让用户输入元素个数, 然后固定字数循环*/ if(n=-1) break; /* 创建新结点 */ s = (struct node *)malloc(sizeof(struct node); s-data = n; s-next = h-next; /* 新结点放入链表的表头 让头结点的NEXT指向新结点 */ h-next = s; (h-data)+;/*遍历整个链表*/void bianliLink(struct node *h) int k;struct node *p; /*P指向第一个结点*/p=h-next; /*如果定义了链表长度变量,可以使用变量计数,表示处理到链表的最后一个元素如果不定义链表长度变量,就用指针是否指向NULL,判断是否处理到最后一个元素了*/*1.链表长度变量计数*/k=0;while(kdata) /*对元素进行处理这里可以根据需求变更*/printf(%d ,p-data);/*准备处理下一个节点*/p = p-next;k+;/*2.用指针判断是否处理到链表的最后一个元素了*/printf(n);p=h-next;while(p!=NULL) /*处理当前节点*/printf(%d ,p-data);/*准备处理下一个节点*/ p = p-next; printf(n);/*int num:要插入的结点元素的值index: 插入位置: index从1开始编号, 要在Index指定的位置插入数据*/void insertLink(struct node *h,int num,int index) struct node *p,*s;int k=1;/*插入位置无效,链表长度现在是10,在12(包含12)之后的位置插入元素,认为地址无效*/if(index(h-data+1) return;s = (struct node*)malloc(sizeof(struct node);if(s=NULL) return;s-data=num;/*让指针p指向头结点*/p = h;/*让指针p移动到待插入位置的前驱结点*/while(knext;k+;s-next=p-next;p-next=s;h-data+;/*index: 删除位置: index从1开始编号, 要删除index所指的位置的元素*/void deleteLink(struct node *h,int index) struct node *p,*s;int k=1;if(indexh-data) return;/*让指针p指向头结点*/ p = h;/*让指针p移动到待删除节点的前驱*/ while(knext;k+;p-next = p-next-next;/*链表删除有可能让你返回删除的节点的值*/ h-data-;/*该方法返回链表的Index位置的元素链表中的数据元素的类型与函数返回值的类型要一致*/int getLink(struct node *h,int index) struct node *p;int k=1;p = h-next;while(k+next;return p-data;main() struct node *header;init(&header); createLink(header); bianliLink(header);insertLink(header,10,1); bianliLink(header);insertLink(header,11,header-data+1);bianliLink(header);insertLink(header,13,4);bianliLink(header);deleteLink(header,1); bianliLink(header); deleteLink(header,header-data); bianliLink(header);deleteLink(header,3); bianliLink(header
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年设备监理师考试题库(历年真题)
- 2024年医院院感及传染病知识培训试题附答案
- “五一”假期告家长书
- 机器人技术研究开发合作协议
- 国贸专业的毕业论文什么比较好写
- 毕业论文答辩怎么做
- 输血制度及流程试卷附有答案
- 储备粮食质量检测与控制流程
- 一级消防工程师《案例分析》考后真题答案及解析
- 2025年养老产业合作经营协议
- 2025年昆山校医考试题库
- 2024年黔西南州畅达交通建设运输有限责任公司招聘考试真题
- 2025年云南高考历史试卷解读及备考策略指导课件
- 2025至2030中国纤维素纳米纤维(CNF)行业项目调研及市场前景预测评估报告
- 公共场所卫生管理员安全教育培训手册
- 企业丧事慰问管理办法
- 中国画基础知识课件
- 2025年全国高校辅导员素质能力大赛基础知识测试题及答案(共3套)
- 岗位竞技活动方案
- 大气监测培训课件
- 中国高熔体强度聚丙烯行业市场调查报告
评论
0/150
提交评论