洛阳理工学院数据结构实验报告

2019-03-04 15:43

洛阳理工学院实验报告

系部 计算机与信息班级 工程系 课程名称 实验名称 数据结构 实验1:顺序表的基本操作 实验日期 2014.3.5 成绩 学号 姓名 实验目的: 掌握线性表的基本操作:插入、删除、查找在顺序存储结构上的实现。 实验条件: 电脑一台,VC++6.0 实验内容与步骤: 内容:建立一有序的顺序表,并实现下列操作: 1. 把元素x插入表中并保持有序; 2.查找值为x的元素,若找到将其删除; 3.输出表中各元素的值。 步骤: 1、先将插入的元素与最后一个元素比较,若小,将最后一个元素向后移动一个位置。继续与次位比较,若还小,继续移动。直到比它大时,不在移动,然后将要插入的元素插入,最后再让表长加一。 2、调用查找函数找出所删除元素的下表,并返回其值:先从第一个元素开始找,如果找到了,返回下标值;如果到表的结尾还没有找到就返回-1。 3、对于找到所删除元素,就从该元素开始,每一元素都往前移动,然后让表长减一。 4、调用输出函数,输出表中各元素的值时,将其封装成一个函数。传入该函数中的参数是一个指向该顺序表的指针。 运行结果: 实验总结: 通过此次的实验使我基本掌握了顺序表的函数的输入输出、查找、插入和删除等顺序表的基本操作,还有加深对函数之间的调用,对选择语句的加深。 在学习数据结构时一定有多上计实践,才能更好的发现错误,才能让我们注意到更多的细节之处,更能加深我们对课本知识的掌握。 附:源程序: #include #include

#define MAXSIZE 50 //此处宏定义数组最大长度 #define OK 1 #define ERROR 0 typedef struct {

int elem[MAXSIZE];//线性表占用数组空间 int last;

//记录现性表中最后一个元素的下表

}SeqList;

/*******************************************/ //

顺序表按内容查找函数

//功能:在顺序表L中查找与e相等的元素 /********************************************/ int Locate(SeqList *L,int e) {

int i=0; //i为扫描计数器

while((i<=L->last)&&(L->elem[i]!=e)) //顺序扫描表,直到找到职位e的元素,或扫

面到表尾没有找到 }

/*********************************************************/ /****************输入函数*********************************/ /*********************************************************/ void Input(SeqList* L) { int n,j;

printf(\输入数组长度n:\ scanf(\

printf(\输入数组元素\\n\ for(j=0;j

scanf(\L->last=n-1;

i++;

if(i<=L->last)

return(i+1); //若找到值为e的元素,返回i+1

else

return(-1); //若没找到,返回空序列号

/*********************************************************/ /****************输出函数*********************************/ /*********************************************************/ void Output(SeqList* L) {

int i;

for(i=0;i<=L->last;i++) }

/****************************************************/ //

顺序表的插入函数

printf(\

printf(\

//功能:在顺序表L中插入一个元素e。i的合法位子为1~L->last+2 /***************************************************/ int InList(SeqList* L,int e) { int i; }

/*************************************************/

if(L->last==MAXSIZE-1) { }

for(i=L->last;i>=0&&eelem[i];i--)

L->elem[i+1]=L->elem[i]; printf(\溢出\\n\return(ERROR);

L->elem[i+1]=e;

L->last++;

return(OK);

// 顺序表的删除函数

//功能:在顺序表L中删除第i个元素,1<=i<=L->last+1 /************************************************/ void DelList(SeqList* L,int i) { }

/*******************************************************/ //*****************主函数*******************************/ /*******************************************************/ void main() {

int b,e,e1,e2,chiose;

printf(\选择1函数输入*********************\\n\ printf(\选择2函数插入*********************\\n\ printf(\选择3函数删除*********************\\n\

printf(\选择4函数输出*********************\\n\int a=1; SeqList *L,p; L=&p; }

for(k=i;k<=L->last;k++)

L->elem[k-1]=L->elem[k]; //将后面的元素次前移 int k;

if((i<1)||(i>L->last+1)) {

printf(\删除位置不合法\

L->last--;


洛阳理工学院数据结构实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:应用文写作教案(好)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: