




免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州黔东南州剑河县顺诚公司紧急招聘长期搔菌人员15人模拟试卷附答案详解(突破训练)
- 2025年宿州市人才集团有限公司招募就业见习人员7人模拟试卷及答案详解(历年真题)
- 2025年贵阳市市级机关公开遴选考试真题
- 2025甘肃省计量研究院聘用人员招聘8人考前自测高频考点模拟试题及完整答案详解一套
- 2025贵州天柱县第二季度(第一次)拟招聘8个全日制城镇公益性岗位模拟试卷含答案详解
- 2025年春季中国光大银行济南分行校园招聘(滨州有岗)模拟试卷附答案详解(黄金题型)
- 2025北京中国热带农业科学院椰子研究所第一批次招聘模拟试卷附答案详解(突破训练)
- 2025贵州黔南州瓮安县“雁归兴瓮”人才引进模拟试卷及1套参考答案详解
- 2025广东佛山市中心血站南海血站招聘公益一类事业编制工作人员2人模拟试卷及答案详解参考
- 2025广东中山翠亨集团有限公司副总经理选聘1人考前自测高频考点模拟试题参考答案详解
- 南海特产与美食课件
- 《三国演义》中的心理描写:以司马懿为例
- 迪尔凯姆社会学主义的巨擎汇总课件
- 家庭经济困难学生认定申请表
- 血栓性血小板减少性紫癜ttp汇编课件
- 阀门安装及阀门安装施工方案
- 大学数学《实变函数》电子教案
- YY/T 0640-2008无源外科植入物通用要求
- GB/T 2637-2016安瓿
- 数轴上的动点问题课件
- 省级公开课(一等奖)雨巷-戴望舒课件
评论
0/150
提交评论