下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.单向链表单向链表的基本操作,创建一个由6个节点组成的单向链表,显示链表中每个节点的数据,并且做增加、删除、查找节点以及计算单链表的长度等处理。Ø 需求分析:1.功能 (1)用尾插法创建一带头结点的由6个节点组成的单向链表:从键盘读入一组整数,作为单链表中的元素,输入完第6个结点后结束;将创建好的单链表元素依次输出到屏幕上。 (2)显示链表中每个节点的数据 (3)从键盘输入一个数,查找在以上创建的单链表中是否存在该数;如果存在,显示它的位置,即第几个元素;如果不存在,给出相应提示如“No found node!”。 (4)在上述的单链表中的指定位置插入指定数据,并输出单链表中所有数据
2、。(5)删除上述单链表中指定位置的结点,并输出单链表中所有数据。(6)求单链表的长度并输出。2输入要求先输入单链表中结点个数n,再输入单链表中所有数据,在单链表中需查找的数据,需插入的数据元素的位置、值,要删除的数据元素的位置。3. 测试数据单链表中所有数据:12,23,56,21,8,10在单链表中需查找的数据:56;24插入的数据元素的位置、值:1,28;7,28;0,28 要删除的数据元素的位置:6Ø 概要设计:1. 算法思想:由于在操作过程中要进行插入、删除等操作,为运算方便,选用带头结点的单链表作数据元素的存储结构。对每个数据元素,由一个数据域和一个指针域组成,数据域放输入
3、的数据值,指针域指向下一个结点。2. 数据结构: 单链表结点类型: typedef struct Liistnode int data;struct Listnode *next; NODE;3. 模块划分:a) 用尾插法建立带头结点的单链表*CreateList函数;b) 显示链表中每个结点的数据PrintList函数;c) 从键盘输入一个数,查找单链表中是否存在该数FoundList函数;d) 在单链表中指定位置插入指定数据并输出单链表中所有数据InsertList函数;e) 删除单链表中指定位置的结点并输出单链表中所有数据DeleteList函数;f) 计算单链表的长度并在屏幕上输出Le
4、ngthList函数;g) 主函数main(),功能是给出测试数据值,建立测试数据值的带头结点的单链表,调用PrintList函数、FoundList函数、InsertList函数、DeleteList函数、LengthList函数实现问题要求。四、实验要求1 用C完成算法设计和程序设计并上机调试通过。2 撰写实验报告,提供实验结果和数据。五、源程序清单.;实验代码:#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define ERROR 0;typedef struct LNode int dat
5、a; struct LNode *next;LNode,*LinkList;LinkList InitList(LinkList L) LinkList node = NULL; node = (LinkList)malloc(sizeof(LNode); if(!node) return ERROR; node->next = NULL; L = node; return L;int ListLength(LinkList L) LinkList p = NULL; int count = 0; p = L; while(p->next) count+; p = p->ne
6、xt; return count;LinkList CreateList_L(LinkList L,int n) int i; LinkList p = NULL; for(i=n;i>0;i-) p = (LinkList)malloc(sizeof(LNode); scanf("%d",&p->data); p->next = L->next; L->next = p; return L;LinkList ListInsert(LinkList L,int i,int e) int j = 0; LinkList s = NULL,
7、p = NULL; p = L; while(p&&j<i-1) p = p->next; j+; if(!p|j>i-1) printf("输入的位置不合法!n"); return L; s = (LinkList)malloc(sizeof(LNode); s->data = e; s->next = p->next; p->next = s; return L;LinkList ListDelete(LinkList L,int i) int j; LinkList q = NULL,p = NULL; p =
8、 L; j = 0; while(p->next&&j<i-1) p = p->next; j+; if(!(p->next)|j>i-1) printf("输入的位置不合法!n"); return L; q = p->next; p->next = q->next; free(q); return L;int GetElem(LinkList L,int i) int j,e; LinkList p = NULL; if(i<1|i>ListLength(L) printf("输入的位置
9、不合法!n"); return; p = L->next; j = 1; while(j<i) p = p->next; j+; e = p->data; printf("第%d位的数据元素为%dn",i,e);void menu() printf("*目录*n"); printf("输出单链表中的各元素值 1n"); printf("在单链表中插入数据元素 2n"); printf("在单链表中删除数据元素 3n"); printf("取出单链表中的
10、数据元素 4n"); printf(" 结束程序 0n"); printf("*n");void main() int n,m,i,e; LinkList L = NULL,p = NULL; L = InitList(L); printf("请输入元素个数:"); scanf("%d",&n); printf("依次输入%d个数据元素:",n); L = CreateList_L(L,n); do printf("n n"); menu(); printf
11、("请输入你的选择:"); scanf("%d",&m); switch(m) case 1: printf("现在链表的元素为:"); p = L->next; while(p!=NULL) printf("%d ",p->data); p = p->next; printf("n"); break; case 2: printf("依次输入插入位置和数据元素(空格隔开):"); scanf("%d %d",&i,&e); L = ListInsert(L,i,e); break; case 3: printf("输入需要删除的元素的位置:"); scanf("%d",&i); L = ListDelete(L,i); break; case 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年02月贵州省黔西南州2024年赴高校专项引进335名高层次急需紧缺人才224334笔试历年典型考题及考点研判与答案解析
- 2024年02月福建福州教育学院第二附属中学招考聘用临聘教师笔试历年典型考题及考点研判与答案解析
- 2024年02月湖北省蕲春县事业单位2024年统一公开招考47名工作人员笔试历年典型考题及考点研判与答案解析
- 2024年02月浙江省永康邮政管理局2024年招考1名工作人员笔试历年典型考题及考点研判与答案解析
- 2024年02月江西宜春市消防救援支队上高大队招考聘用政府专职消防员13人笔试历年典型考题及考点研判与答案解析
- 2024年02月江苏省南通中华慈善博物馆2024年公开招考1名政府购买服务岗位工作人员笔试历年典型考题及考点研判与答案解析
- 2024年02月无锡经济开发区事业单位2024年公开招考13名工作人员笔试历年典型考题及考点研判与答案解析
- 2024年02月安徽省蚌埠市事业单位2024年引进30名人员笔试历年典型考题及考点研判与答案解析
- 2024年02月国家检察官学院云南分院2024年公开招考1名人员笔试历年典型考题及考点研判与答案解析
- 2024年02月云南省保山市市直事业单位2024年公开遴选管理人员和专业技术人员31笔试历年典型考题及考点研判与答案解析
- 2022审定人教版五年级数学下册教案
- 《复兴号动车组》课件
- 高新技术产业园区建设
- 邮件分拣员考试:邮件分拣员考试知识学习
- 水库白蚁防治标书
- 人工智能机器学习与深度学习分析报告
- 2024年危化品管理制度15篇
- 酒店装修现场安全文明施工方案
- 外包服务提供商的安全评估与监控
- 数控行业人物例子分析
- 青年心理健康与发展2024年青少年心理健康及发展需求调研
评论
0/150
提交评论