下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一:线性表的顺序存储结构实验学时:2实验类型:验证一、实验目的: 1. 熟练掌握线性表的基本操作在顺序存储和链式存储上的实现;2. 以线性表的各种操作(建立、插入、删除等)的实现为重点;3. 掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;二、实验内容: 1输入一组整型数据,建立顺序表。2实现该线性表的删除。3、实现该线性表的插入。4实现线性表中数据的显示。5实现线性表数据的查找和定位5、编写一个主函数,调试上述算法。三、 实验原理、方法和手段1.根据实验内容编程,上机调试、得出正确的运行程序。2. 编译运行程序,观察运行情况和输出结果。3. 写出实验报告(包括源程序和运行结果)。
2、四、实验条件运行Visual c+的微机一台五、实验步骤(程序清单):(一)、程序代码:#include "stdafx.h"#include<iostream>using namespace std;typedef int elemtype;struct listelemtype *p;int size;int maxsize;void buildlist(list &a,int b)/*建立顺序表*/if(b<=0)cout<<"数据有误" <<endl;a.p=new elemtypeb;if(a.
3、p=NULL)cout<<"动态可分配的空间用完,退出运行!"<<endl;a.size=0;a.maxsize=b;void clearlist(list &a)/*清空线性表*/if(a.p!=NULL)delete a.p;a.p=NULL;a.maxsize =0;a.size=0;bool insertlist(list &a,int pos,elemtype b)/*向线性表中按给定的位置插入一个元素*/int i;if(pos<=0|pos-1>a.size)cout<<"位置无效&qu
4、ot; <<endl;return false;if(a.maxsize<=a.size)a.p=(elemtype*)realloc(a.p,2*a.maxsize *sizeof(b);a.maxsize=2*a.maxsize;for( i=a.size;i>=pos;i-)a.pi=a.pi-1;a.pi=b;a.size+;return true;bool deletelist(list &a,int pos)/*向线性表中按给定的位置删除一个元素*/if(a.size=0)cout<<"线性表为空,删除无效!"<
5、<endl;return false;if(pos<=0|pos>a.size)cout<<"位置无效" <<endl;return false;for(int i=pos-1;i<a.size-1;i+)a.pi=a.pi+1;a.size-;if(float(a.size)<a.maxsize*0.4&&a.maxsize>10)a.p=(elemtype*)realloc(a.p,a.maxsize*0.5*sizeof(*(a.p);a.maxsize=a.maxsize*0.5;retur
6、n true;bool getlist(list a,int pos,elemtype &item)/*得到线性表中指定位置的元素*/if(pos<=0|pos>a.size)cout<<"位置无效" <<endl;return false;item=a.ppos-1;return true;int findlist(list a,elemtype b)/*从线性表中查找具有给定值的第个元素*/for(int i=0;i<a.size;i+)if(a.pi=b)return i+1;return 0; void displa
7、y(list a)/*线性表中数据的显示*/cout<<"顺序表元素个数为:"<<a.size <<endl<<"所占内存单元为:"<<a.maxsize*sizeof(*(a.p) <<"字节"<<endl<<"数据为:"for(int i=0;i<a.size;i+)cout<<a.pi<<""cout<<endl;void main()list L;in
8、t i=10;int pos;elemtype a,b,c;buildlist(L,5);for(int j=0;j<10;j+)insertlist(L,j+1,i);i-;display(L);cout<<endl;cout<<"一、插入操作:"<<endl;cout<<"位置:"cin>>pos;cout<<"数据:"cin>>a;if(insertlist(L,pos,a)cout<<"插入成功"<&
9、lt;endl;elsecout<<"插入失败"<<endl;display(L);cout<<endl;cout<<"二、删除操作:"<<endl;cout<<"位置:"cin>>pos;if(deletelist(L,pos)cout<<"删除成功"<<endl;elsecout<<"删除失败"<<endl;display(L);cout<<endl
10、;cout<<"三、定位操作:"<<endl;cout<<"位置:"cin>>pos;if(getlist(L,pos,b)cout<<"该位置数据为"<<b<<endl;elsecout<<"定位失败"<<endl;cout<<"四、查找操作:"<<endl;cout<<"数据:"cin>>c;if(findlist(L,c)cout<<"线性表中第一个等于该数据的位置为"<<findlist(L,c)<<endl;elsecout<<"线性表中没有等于该数据的元素"<<endl;clearlist(L);(二)、程序运行结果六、实验分析与总结:通过本次实验,我发现了自己身上很多的不足:1.不知道什么时候才需要将函数的返回类型弄成bool类型;2.在编写函数体的时候,对排除非法情况考虑不周;3.对申请、追
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑个性化施工方案
- 新零售模式拓展市场空间方案
- 碳排放排口监测预警方案
- 景区栏目包装方案范本
- 洛阳市政景观灯施工方案
- 地面地砖检修方案范本
- 造林林地清理方案范本
- 2026年老年人防诈骗社会支持网
- 2026年建筑工人火场逃生自救互救技能
- 2026年市政管网工程雨季施工计划
- 2026广东东莞市松山湖社区卫生服务中心招聘纳入岗位管理编制外人员4人笔试备考试题及答案解析
- 2026西藏阿里地区普兰县审计局招聘审计协助人员的2人备考题库有答案详解
- 2026河南科高产业集团有限责任公司高级管理人员招聘7人笔试备考试题及答案解析
- 2026年中考历史考前冲刺:中国+世界(古代史|近代史|现代史) 小论文范文汇编
- DBJ50-T-157-2022房屋建筑和市政基础设施工程施工现场从业人员配备标准
- 2023年贵州省黔西南州兴义市桔山街道社区工作者招聘笔试题库及答案解析
- 天使爱美丽-电影剧本法语版
- 《简单教数学》读书-分享-
- 高标准农田建设监理评估报告
- YS/T 431-2000铝及铝合金彩色涂层板、带材
- 肺隔离症介入治疗课件
评论
0/150
提交评论