




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.师大学实验报告课程:数据构造班级:2021级通信2班实验序号:1**:明达学号:0实验日期:9.17题目:顺序表的建立和运算一、实验目的和要求〔1〕熟悉C语言的上机环境,进一步掌握C语言的构造特点。〔2〕掌握线性表的顺序存储构造的定义及根本运算二、实验环境Windows10,VisualStudio2021三、实验容及实施实验容1、建立一个顺序表,输入n个元素并输出;2、查找线性表中的最大元素并输出;3、在线性表的第i个元素前插入一个正整数*;4、删除线性表中的第j个元素;5、将线性表中的元素按升序排列;【程序流程图】显示顺序表显示顺序表查找最大元素插入一个正整数删除第j个元素按升序排序建立一个顺序表。1、输出顺序表;2、查找线性表中的最大元素并输出;3、在线性表的第i个元素前插入一个正整数*;4、删除线性表中的第j个元素;5、排序*6、将线性表中的元素就地逆序【程序】*include<stdio.h>*include<iostream>usingnamespacestd;*defineMA*SIZE100*defineOK1*defineERROR0*defineOVERFLOW-2typedefstruct{//定义顺序表构造 intdata[MA*SIZE];//存储空间的基地址; intlength;//当前表长}SqList;intInitList(SqList&L)//初始化顺序表{ L.length=0;//当前长度为0 returnOK;}voidShowList(SqList&L)//显示顺序表{ cout<<"您构建的顺序表为:"<<endl;//提示 inti; for(i=0;i<L.length;i++) { cout<<L.data[i]<<""; }//依次输出顺序表 cout<<endl;}voidFindMa*(SqList&L)//找最大值{ cout<<"该组数据的最大值为:"<<endl; intm=L.data[0]; inti; for(i=0;i<L.length;i++)//依次比拟两个数的大小,取大者赋给m { if(m<L.data[i]) { m=L.data[i]; } } cout<<m<<endl;//输出最大值}intInsertList(SqList&L)//插入新数字{ int*,e; cout<<"请问您要在第__个数字前插入新数字.";//提示 cin>>*;//输入要插入的位置 if(*<1||*>L.length) { cout<<"该值错!"<<endl; returnERROR; }//位置错误提示 if(L.length==MA*SIZE) { cout<<"该顺序表空间已满,不能再添加数值!"<<endl; returnOVERFLOW; }//存储空间已满提示 cout<<"您要插入的数字为:"<<endl; cin>>e;//输入要插入的数字 for(intj=L.length-1;j>=*-1;j--) L.data[j+1]=L.data[j];//从要插入的位置起,后面数据依次向后移动 L.data[*-1]=e;//插入新数字 L.length++;//表长+1 cout<<"插入新数字之后的顺序表为:"<<endl;//提示 ShowList(L);//输出新表 returnOK;}intDeleteElem(SqList&L)//删除*个元素{ int*; cout<<"请问您要删除第__个元素.";//提示 cin>>*;//输入要删除第几个数字 if(*<1||*>L.length) { cout<<"该值错!"<<endl; returnERROR; }//错误提示 for(intj=*-1;j<L.length-1;j++) L.data[j]=L.data[j+1];//从该位置起,以后数字依次向前移动 L.length--;//表长-1 cout<<"删除数字之后的顺序表为:"<<endl;//提示 ShowList(L);//输出新表 returnOK;}voidUpRankList(SqList&L)//升序排列顺序表{ inti,j,temp; for(j=0;j<L.length-1;j++)//进展表长-1趟冒泡 { for(i=0;i<L.length-1-j;i++)//每趟冒泡比拟两个数字,共比拟表长-趟数次 { if(L.data[i]>L.data[i+1])//将两者较大者移到后边 { temp=L.data[i]; L.data[i]=L.data[i+1]; L.data[i+1]=temp; } } } cout<<"该数组按升序排列后为:"<<endl;//提示 ShowList(L);//输出新表}intmain(){ SqListL;//定义顺序表L InitList(L);//初始化L cout<<"请输入要输入的数字的个数:"<<""; cin>>L.length;//输入表长 cout<<"请输入要输入的数字,并用空格隔开:"<<endl; inti; for(i=0;i<L.length;i++) { cin>>L.data[i]; }//依次输入顺序表各个元素 cout<<"请输入以下选项前的字母对该数组进展相应操作。"<<endl <<"A.显示出该顺序表"<<endl <<"B.找出该组数中的最大值"<<endl <<"C.在该顺序表中插入新数据"<<endl <<"D.删除*个数据"<<endl <<"E.将该顺序表按生序排列"<<endl;//提示 charchoice; do//主菜单 { cin>>choice; switch(choice) { case'A':ShowList(L);break; case'B':FindMa*(L);break; case'C':InsertList(L);break; case'D':DeleteElem(L);break; case'E':UpRankList(L);b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海市城市更新项目施工合同乙种本(合同版本)
- 2023-2024学年江苏省南京市秦淮区八年级(上)期末语文试题及答案
- 吉尔吉斯语中的主从复合句研究论文
- 《花生种植的畜牧业用花生品种选育技术研究》论文
- 2025年韩语TOPIK中级考试真题卷:历年真题解析与备考指导
- 2025年劳动合同续签个人总结范文
- 护理查房知识链接
- 幼儿园创文教育活动教案
- 2025-2030羊奶粉项目商业计划书
- 2025-2030纤维针织衫市场前景分析及投资策略与风险管理研究报告
- 2025年3月22日山东事业单位统考《行测》真题(含答案)
- 2025年深圳市企业劳动合同模板
- 2025年福建省福州市第十九中学初三3月教学质量检查物理试题含解析
- 中国轮毂电机市场发展状况与投资方向预测报告2024-2030年
- 智慧养老考试题及答案
- 2025广东汕尾市水务集团有限公司招聘人员8人笔试参考题库附带答案详解
- 山东2025年山东科技职业学院招聘33人笔试历年参考题库附带答案详解
- 2024山西云时代技术有限公司社会招聘59人笔试参考题库附带答案详解
- (一模)2025年聊城市高三高考模拟历史试题卷(含答案)
- 中国革命战争的战略问题(全文)
- G322-1钢筋砼过梁
评论
0/150
提交评论