




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一、单链表的插入和删除 一、目的 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基 本算法及相关的时间性能分析。 |,、- 二、要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复 的字符串;根据输入的字符串,先找到相应的结点,后删除之。 三、程序源代码 #in cludestdio.h #i ncludestri ng.h #i ncludestdlib.h #i ncludectype.h typedef struct node char data10; struct node *n ext; ListNode; typedef ListNode * Lin kLi
2、st; / Lin kList CreatListR1(); / / / 自定义 / 定义结点 结点的数据域为字符串 结点的指针域 Lin kList 单链表类型 函数,用尾插入法建立 带头结点的单链表 ListNode *LocateNode();/ 函数,按值查找结点 char ch10,num10; LinkList head; head=CreatListR1(); / printlist(head); / printf( Delete node (y/n):);/ DeleteAll(head); / 删除所有结点,释放内存 void DeleteList(); / 函数,删除指定值
3、的结点 void printlist(); / 函数,打印链表中的所有值 void DeleteAll(); / 函数,删除所有结点, 释放内存 /=主函数 = void main() 用尾插入法建立单链表,返回头指针 遍历链表输出其值 输入“ y ”或“n”去选择是否 删除结点 scanf(%s,num); if(strcmp(num,y)=0 | strcmp(num,Y)=0) printf(Please input Delete_data:); scanf(%s,ch);/ 输入要删除的字符串 DeleteList(head,ch); printlist(head); / 用尾插入法建
4、立带头结点的单链表 LinkList CreatListR1(void) char ch10; LinkList head=(LinkList)malloc(sizeof(ListNode); / 生成头结 点 八、 ListNode *s,*r,*pp; r=head; r-next=NULL; printf(Input # to end ); /输入“ #”代表输入结束 printf(Please input Node_data:); scanf(%s,ch); / 输入各结点的字符串 while(strcmp(ch,#)!=0) pp=LocateNode(head,ch); / 按值查
5、找结点,返回结点指针 if(pp=NULL) /没有重复的字符串,插入到链表中 s=(ListNode *)malloc(sizeof(ListNode); strcpy(s-data,ch); r-next=s; r=s; r-next=NULL; printf(Input # to end ); printf(Please input Node_data:); scanf(%s,ch); return head; / 返回头指针 /=按值查找结点,找到则返回该结点的位置,否则返回 NULL= ListNode *LocateNode(LinkList head, char *key) Li
6、stNode *p=head-next; / 从开始结点比较 while(p / 扫描下一个结点 return p; /若p=NULL则查找失败,否则 p指向找到的值 key 的结点 /=删除带头结点的单链表中的指定结点 = void DeleteList(LinkList head,char *key) ListNode *p,*r,*q=head; p=LocateNode(head,key); / 按 key 值查找结点的 printf(position error); exit(0); while(q-next!=p) /p 为要删除的结点, q 为 p 的前结点 q=q-next; r=q-next; q-next=r-next; free(r); /释放结点 /= 打印链表 = void printlist(LinkList head) ListNode *p=head-next; / 从开始结点打印 while(p) printf(%s,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年高考化学艺体生百日突围系列专题2.17物质结构与性质选修基础练测
- 2025版高中数学第三章空间向量与立体几何3.1.1空间向量的线性运算学案含解析新人教B版选修2-1
- 2024-2025学年高中生物第五章群落第12课时群落的主要类型和演替学案浙科版必修3
- 十五五渔业产业高质量发展规划
- 制造部安全生产检查规定
- 味道的英语单词
- 厂房主体钢筋混凝土框架结构施工组织设计方案
- 《消费者心理学》课件模块九网络消费者特征及心理分析
- 数学 二年级下册 (人教RJ)重难点突破课件-第八、九单元重难点突破
- 半幅施工施工缝处理方案
- 浙江省杭州市2022-2023学年五年级下学期数学期末试卷(含答案)3
- 新高一数学衔接课程
- 小学科学教学专题研究
- 2024河北建投遵化热电限责任公司招聘21人高频考题难、易错点模拟试题(共500题)附带答案详解
- 5.4 核酸疫苗(mrna疫苗)
- MOOC 线性代数及其应用-天津大学 中国大学慕课答案
- (2024年)银行不良清收技巧培训课件(学员版)
- 广东省东莞市2022-2023学年高二上学期期末考试化学试题(解析版)
- 生地会考动员决战生地之巅生地百日冲刺动员主题班会课件
- 养老护理员(三级)重点复习考试题库(500题)
- 常州市溧阳市2022-2023学年七年级第二学期数学期末试卷(含答案解析)
评论
0/150
提交评论