已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告一系别: 班级: 学号: 姓名: 日期: 指导教师: 一、上机实验的问题和要求:顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求:从键盘输入10个整数,产生顺序表,并输入结点值。从键盘输入1个整数,在顺序表中查找该结点的位置。若找到,输出结点的位置;若找不到,则显示“找不到”。从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插入在对应位置上,输出顺序表所有结点值,观察输出结果。从键盘输入1个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出结果。二、程序设计的基本思想,原理和算法描述:(包括程序的结构,数据结构,输入/输出设计,符号名说明等)三、源程序及注释:#include /*顺序表的定义:*/#define ListSize 100/*表空间大小可根据实际需要而定,这里假设为100*/typedef int DataType;/*DataType可以是任何相应的数据类型如int, float或char*/typedef structDataType dataListSize;/*向量data用于存放表结点*/int length;/*当前的表长度*/SeqList;/*子函数的声明*/void CreateList(SeqList * L,int n); /*创建顺序表函数*/int LocateList(SeqList L,DataType x); /*查找顺序表*/void InsertList(SeqList * L,DataType x,int i); /*在顺序表中插入结点x*/void DeleteList(SeqList * L,int i);/*在顺序表中删除第i个结点*/void PrintList(SeqList L,int n); /*打印顺序表中前n个结点*/void main()SeqList L;int n=10,x,i;/*欲建立的顺序表长度*/L.length=0;/*调用创建线性表函数*/printf(create function:n);CreateList(&L,n);/*建立顺序表*/PrintList(L,n);/*打印顺序表*/ /*调用查找函数*/ printf(search function:n); printf(input the data you want to search:); scanf(%d,&x); i=LocateList(L,x); /*顺序表查找*/ if (i=0) printf(sorry,dont find %d!nn,x); else printf(i have find the %d,it locate in %d!nn,x,i);/*调用插入函数*/ printf(Insert function:n); printf(输入要插入的位置:(input the position:);scanf(%d,&i);printf(输入要插入的元素:(input the data:);scanf(%d,&x);InsertList(&L,x,i);/*顺序表插入 */PrintList(L,n);/*打印顺序表 */*调用删除函数*/printf(delete function:n); printf(输入要删除的位置:(input the position:);scanf(%d,&i);DeleteList(&L,i);/*顺序表删除 */PrintList(L,n);/*打印顺序表 */*顺序表的建立:*/void CreateList(SeqList *L,int n)int i;for (i=0;in;i+) printf(ninput the %d data:,i+1); scanf(%d,&(*L).datai); (*L).length=n;/*顺序表的查找:*/int LocateList(SeqList L,DataType x) int i=0; while (iL.length&x!=L.datai) +i; if (iL.length) return i+1; else return 0;/*顺序表的插入:*/void InsertList(SeqList *L,DataType x,int i)/*将新结点x插入L所指的顺序表的第i个结点的位置上 */int j;if (i(*L).length)printf(插入位置非法);exit(0);if (*L).length=ListSize)printf(表空间溢出,退出运行);exit(0);for (j=(*L).length-1;j=i-1;j-)(*L).dataj+1=(*L).dataj; /*顺序表元素从后向前依次后移*/ (*L).datai-1=x; /*将x插入第i个结点位置*/ (*L).length+; /*表长自增1*/*顺序表的删除:*/void DeleteList(SeqList *L,int i)/*从L所指的顺序表中删除第i个结点 */int j;if (i(*L).length)printf(删除位置非法);exit(0);for (j=i;j=(*L).length-1;j+)(*L).dataj=(*L).dataj+1; /*顺序表自第i个结点开始,依次前移*/ (*L).length-; /*表长自减1*/*顺序表的打印:*/void PrintList(SeqList L,int n)int i; printf(the sequal list data is:);for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江温州市瑞安市城市照明设施建设管理中心招聘临时人员1人备考题库附答案详解(达标题)
- 2026福建龙岩市连城县新泉中心小学代课教师招聘2人备考题库及答案详解一套
- 高中英语阅读教学跨文化意识培养的多元评价体系构建与应用教学研究课题报告
- 萍乡市事业单位2026年统一公开招聘工作人员备考题库附答案详解(研优卷)
- 2026海南海口市纪委监委所属事业单位招聘4人备考题库(第一号)及一套参考答案详解
- 2026贵州财经大学招聘4人备考题库及答案详解(全优)
- 2026福建泉州安溪六中招聘编外合同制教师备考题库及答案详解(必刷)
- 2026福建三明市第一医院医联体分院招聘编外工作人员的1人备考题库附参考答案详解(a卷)
- 2026贵州生态能源职业学院招聘12人备考题库附答案详解(研优卷)
- 2025至2030融资担保行业竞争格局与未来发展方向研究报告
- 2026年交通运输企业春节节后开工第一课安全专题培训课件
- 音乐场所卫生管理制度
- 标书财务制度
- 四川发展控股有限责任公司会计岗笔试题
- 2026中国电信四川公用信息产业有限责任公司社会成熟人才招聘备考题库及一套答案详解
- 2026年山东铝业职业学院单招综合素质考试题库带答案详解
- 天津津静收费站雷击事故深度剖析与防护策略探究
- 2025山西焦煤集团所属华晋焦煤井下操作技能岗退役军人招聘50人笔试参考题库带答案解析
- 儿童骨科主任论儿童骨科
- 2026年齐齐哈尔高等师范专科学校单招(计算机)测试模拟题库必考题
- 送钱表文完整规范版本(含民俗禁忌)
评论
0/150
提交评论