数据结构实验一线表的顺序存储结构.doc_第1页
数据结构实验一线表的顺序存储结构.doc_第2页
数据结构实验一线表的顺序存储结构.doc_第3页
数据结构实验一线表的顺序存储结构.doc_第4页
数据结构实验一线表的顺序存储结构.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一:线性表的顺序存储结构实验学时:2实验类型:验证一、实验目的: 1. 熟练掌握线性表的基本操作在顺序存储和链式存储上的实现;2. 以线性表的各种操作(建立、插入、删除等)的实现为重点;3. 掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;二、实验内容: 1输入一组整型数据,建立顺序表。2实现该线性表的删除。3、实现该线性表的插入。4实现线性表中数据的显示。5实现线性表数据的查找和定位5、编写一个主函数,调试上述算法。三、 实验原理、方法和手段1.根据实验内容编程,上机调试、得出正确的运行程序。2. 编译运行程序,观察运行情况和输出结果。3. 写出实验报告(包括源程序和运行结果)。四、实验条件运行Visual c+的微机一台五、实验步骤(程序清单):(一)、程序代码:#include stdafx.h#includeusing 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.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(posa.size)cout位置无效 endl;return false;if(a.maxsize=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线性表为空,删除无效!endl;return false;if(posa.size)cout位置无效 endl;return false;for(int i=pos-1;ia.size-1;i+)a.pi=a.pi+1;a.size-;if(float(a.size)10)a.p=(elemtype*)realloc(a.p,a.maxsize*0.5*sizeof(*(a.p);a.maxsize=a.maxsize*0.5;return true;bool getlist(list a,int pos,elemtype &item)/*得到线性表中指定位置的元素*/if(posa.size)cout位置无效 endl;return false;item=a.ppos-1;return true;int findlist(list a,elemtype b)/*从线性表中查找具有给定值的第个元素*/for(int i=0;ia.size;i+)if(a.pi=b)return i+1;return 0; void display(list a)/*线性表中数据的显示*/cout顺序表元素个数为:a.size endl所占内存单元为:a.maxsize*sizeof(*(a.p) 字节endl数据为:;for(int i=0;ia.size;i+)couta.pi;coutendl;void main()list L;int i=10;int pos;elemtype a,b,c;buildlist(L,5);for(int j=0;j10;j+)insertlist(L,j+1,i);i-;display(L);coutendl;cout一、插入操作:endl;coutpos;couta;if(insertlist(L,pos,a)cout插入成功endl;elsecout插入失败endl;display(L);coutendl;cout二、删除操作:endl;coutpos;if(deletelist(L,pos)cout删除成功endl;elsecout删除失败endl;display(L);coutendl;cout三、定位操作:endl;coutpos;if(getlist(L,pos,b)cout该位置数据为bendl;elsecout定位失败endl;cout四、查找操作:endl;coutc;if(findlist(L,c)cout线性表中第一个等于该数据的位置为findlist(L,c)endl;elsecout线性表中没有等于该数据的元素endl;clearlist(L);(二)、程序运行结果六、实验分析与总结:通过本次实验,我发现了自己身上很多的不足:1.不知道什么时候才需要将函数的返回类型弄成bool类型;2.在编写函数体的时候,对排除非法情况考虑不周;3.对申请、追加及删除动态空间的语法不熟悉;4.没有思路对算法进行优化,例如,不知道怎样将所申请的动态空间适当缩小或放大。f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论