数据结构实验报告实验一.doc

上传人:飞****2 文档编号:56412856 上传时间:2022-11-01 格式:DOC 页数:10 大小:822.50KB
返回 下载 相关 举报
数据结构实验报告实验一.doc_第1页
第1页 / 共10页
数据结构实验报告实验一.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《数据结构实验报告实验一.doc》由会员分享,可在线阅读,更多相关《数据结构实验报告实验一.doc(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、实验题目班级 雷电121 姓名 邹德培 学号 日期 2013-10-17 一、 需求分析1 程序的功能 建造一个顺序线性表,对线性表进行操作,具备任意选择删除、插入、查找数据元素的功能。2 输入输出的要求输入一维数组,且不超过100个;输出程序要求的值,等数据。二、 概要设计1 本程序所用的抽象数据类型的定义typedef structDataType itemsLISTSIZE;int length;SqList;2 主程序的流程及各程序模块之间的层次关系 先定义一个顺序表,结构体里的一位数组为顺序表内容,然后调用int InitList(SqList *L)初始化顺序表,然后已键盘输入的形

2、式输入一组一维数组,保存到顺序表里,次数组以-222作为结束符号,然后调用int TraverseList(SqList L)遍历次顺序表,在主函数里实行do-while在里面进行意选择删除、插入、查找数据元素的功能。 删除功能调用int ListInsertt(SqList *L),int ListInsertt(SqList *L)又调用int ListDelete(SqList *L),为嵌套调用。插入功能 调用int ListInsert(SqList *L,int pos,DataType item)此函数。查找功能 调用int Find(SqList L);在以上子函数中要用到in

3、t ListEmpty(SqList L)判空函数。三、 详细设计typedef struct/数据的结构体DataType itemsLISTSIZE;int length;SqList;不是回文是回文输入数组开始生成队栈指针比较字符串大小输入字符串函数的调用关系图入队并检测在出栈另存字符串出队入栈四、 调试分析1 调试中遇到的问题及对问题的解决方法调试中用错误提示功能进行改错,根据逻辑思路进行改错。2 算法的时间复杂度和空间复杂度。五、 源程序 #include#define LISTSIZE 100typedef int DataType;typedef struct/定义顺序结构体Da

4、taType itemsLISTSIZE;int length;SqList;int InitList(SqList *L)/*初始化顺序表*/*L为指向顺序表的指针L-length=0;return 1;int ListEmpty(SqList L)/*判空表*/if (L.lengthlength=LISTSIZE)printf(顺序表已满,无法进行插入操作!);return 0;if (pos L-length)printf(插入位置不合法,其取值范围应该是1,%d,L-length);return 0;for (i=L-length-1;i=pos-1;i-)/*插入位置后的数据后移*

5、/L-itemsi+1=L-itemsi;L-itemspos-1=item;L-length+; return 1;int TraverseList(SqList L)/*遍历*/int i;for (i=0;iL.length;i+) printf(%dt,L.itemsi);printf(n);return 1;int ListDelete(SqList *L)/*删除*/int pos,i,item;printf(请输入要删除数据的位置:n); scanf(%d,&pos); if(ListEmpty(*L)printf(顺序表为空,无法进行删除操作!);return 0;if(pos

6、L-length)printf(删除位置不合法,其取值范围是1,%d,L-length);return 0;item=L-itemspos-1;for (i=pos;ilength;i+)/删除元素前移L-itemsi-1=L-itemsi;L-length-;return 1;int ListInsertt(SqList *L)/*选择插入*/int pos,item;printf(请输入要插入的数据:n);scanf(%d,&item);printf(请输入要插入的位置:n);scanf(%d,&pos);if (!ListInsert(L,pos,item) return 0;elseT

7、raverseList(*L);return 1;int Find(SqList L)/*查找*/int item,pos=0;printf(请输入要查找的数据:n);scanf(%d,&item);if (ListEmpty(L)printf(顺序表为空,无法进行查找操作!);return 0;while(posL.length & L.itemspos!=item) pos+;if (pos L.length)printf(查找位置是:%dn,pos+1);return 1;else printf(没有这个数!n);return 0;int main(void)int i,op,kk=0;

8、 SqList LL;InitList(&LL);printf(请输入一组整数作为顺序表内容(以-222结束):n);for (i=0;iLISTSIZE;i+)scanf(%d,&LL.itemsi);if(LL.itemsi=-222)LL.length=i;break;if (TraverseList(LL)!=1)printf(n运行错误n);return 0;doprintf(n 选择菜单 n);printf(-);printf(n (1)设置删除.);printf(n (2)设置插入.);printf(n (3)设置查找.);printf(n (0)退出程序.);printf(n请选择(1,2,3,0):);scanf(%d,&op);if (op3) continue;switch(op)case 1: ListDelete(&LL);TraverseList(LL);break;case 2: ListInsertt(&LL);break;case 3: Find(LL);TraverseList(LL);break;case 0: return 0;default :break;while(1);return 0;六、 使用说明及测试结果根据提示输入,一维数组以-222为结束。然后根据你的需要进行选择功能。测试结果:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com