【数据结构】顺序表实验报告.doc_第1页
【数据结构】顺序表实验报告.doc_第2页
【数据结构】顺序表实验报告.doc_第3页
【数据结构】顺序表实验报告.doc_第4页
【数据结构】顺序表实验报告.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

数据结构B实验报告系 专业 2008级 01 _班 姓名 学号 2010年1 0月 9日1. 上机题目: 顺序表的实验2. 详细设计#define MAXSIZE 100#include#includetypedef int Elemtype;typedef structElemtype dataMAXSIZE;int length;Sqlist;void Initlist(Sqlist &L)L.length=0;void CreatSqlist(Sqlist &L,int n) int i;for(i=0;in;i+)scanf(%d,&L.datai);L.length=n;fflush(stdin);void Output(Sqlist L)int i;for(i=0;iL.length;i+)printf(%5d,L.datai);printf(n);int IsEmpty(Sqlist L)if(L.length=0) return 1;else return 0;int GetElem(Sqlist L,int i)if(i=L.length) return -9999;else return L.datai;int LocateElem(Sqlist L,Elemtype x)int k=0;while(kL.length&L.datak!=x)k+;if(kL.length) return k;else return -1;int Insert(Sqlist &L,Elemtype x,int i)int k;if(iL.length|L.length=MAXSIZE)return 0;else for(k=L.length;k=i;k-) L.datak=L.datak-1; L.datai=x; L.length=L.length+1;return 1;int Delete(Sqlist &L,int i)int k; if(i=L.length)return 0;else for(k=i;kL.length;k+) L.datak=L.datak+1; L.length-; return 1;void Clear(Sqlist &L)Initlist(L);void Mergelist(Sqlist la,Sqlist lb,Sqlist &lc)int i,j,k; i=j=k=0;while(ila.length&jlb.length)if(la.datailb.dataj)lc.datak+=lb.dataj+;else lc.datak+=lb.dataj+;lc.datak+=la.datai+;while(ila.length)lc.datak+=la.datai+; while(ilb.length) lc.datak+=la.datai+; lc.length=k;void output()int i;for(i=0;i10;i+)printf(); for(i=0;i32;i+) printf(*); printf(n);void mainpp()int i;output();for(i=0;i10;i+) printf( );printf(* );printf(1.建立一个顺序表);for(i=0;i10;i+) printf( );printf(*);printf(n);for(i=0;i10;i+) printf( );printf(* );printf(2.输出一个顺序表);for(i=0;i10;i+) printf( );printf(*);printf(n);for(i=0;i10;i+) printf( );printf(* );printf(3.在顺序表中查找);for(i=0;i10;i+) printf( );printf(*);printf(n);for(i=0;i10;i+) printf( );printf(* );printf(4.向顺序表中插入一个元素);for(i=0;i2;i+) printf( );printf(*);printf(n);for(i=0;i10;i+) printf( );printf(* );printf(5.删除顺序表中的一个元素);for(i=0;i2;i+) printf( );printf(*);printf(n);for(i=0;i10;i+) printf( );printf(* );printf(6.从顺序表中取出一个元素);for(i=0;i2;i+) printf( );printf(*);printf(n);for(i=0;i10;i+) printf( );printf(* );printf(7.将俩个顺序表合并);for(i=0;i8;i+) printf( );printf(*);printf(n);for(i=0;i10;i+) printf( );printf(* );printf(0.退 出);for(i=0;i8;i+) printf( );printf(*);printf(n);output();void main()int n,i,k=1,m,x;Sqlist l,la,lc;Initlist(l);/Initlist(la);mainpp();while(k) printf(请选择0-7: ); scanf(%d,&m); getchar(); switch(m) case 0: return; case 1: printf(输入元素值,建立一个顺序表n); printf(输入顺序表的个数: ); scanf(%d,&n);getchar();printf(请输入%d输入个数: ,n); CreatSqlist(l,n);printf(您建立的顺序表如下:n); Output(l); break; case 2: Output(l); printf(n);break; case3: printf(输入要查找的元素值: ); scanf(%d,&x); getchar(); k=LocateElem(l,x); printf(要查找的元素定位:%dn,k);printf(n);break; case 4: printf(请输入要插入元素的位置: ); fflush(stdin);scanf(%d,&i); getchar(); printf(请输入要插入的数:);scanf(%d,&x); getchar();Insert(l,x,i);printf(插入后的顺序表为:n);Output(l);break; case 5: printf(输入要删除元素的位置: ); fflush(stdin); scanf(%d,&i); getchar(); Delete(l,i); printf(删除元素后的顺序表为: ); Output(l); break; case 6: printf(输入要取出的元素的序号: );fflush(stdin);scanf(%d,&i);getchar(); k=GetElem(l,i); printf(取出的第%d个元素为:%dn,i,k);break; case 7: Initlist(la); printf(请输入第二个顺序表的个数: ); scanf(%d,&m); getchar(); printf(请输入%d输入个数: ,m); CreatSqlist(la,m); printf(您新建立的顺序表如下:n); Output(la); Mergelist(l,la,lc); printf(合并后的顺序表为: n); Output(lc); break; default:return; printf(继续运行吗?Y(1)/N(0): ); scanf(%d,&k); getchar(); if(!k) return;3. 调试分析(1) 调试过程中主要遇到哪些问题?是如何解决的? 删除多余元素将i和j搞混,导致计数啥乱了;误将=写成=,结果根本就没有运行删除算法;在每次删除之后没有j-,结果当重复多个元素之后,只能删除一个元素,后来明白,每删除一个元素,j-,才能使j指向再次重复的元素。合并函数开始的时候自己使用for循环,不能正确的指定循环条件,即使指定了,不知道为何不能循环for语句。即使依依比较了两个两个线性表的元素,若两个表的元素书,数目不等,当一个表结束后不知道如何处理剩余的一个表(循环条件找不对)。后来使用使用while语句,就正确的编写了程序,使用

温馨提示

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

评论

0/150

提交评论