ImageVerifierCode 换一换
格式:DOCX , 页数:84 ,大小:40.80KB ,
资源ID:6672639      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6672639.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验报告册.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验报告册.docx

1、数据结构实验报告册四川师范大学计算机学院实 验 报 告 册院系名称: 计算机科学学院 课程名称: 数据结构 实验学期 2013 年至 2014 年 第 一 学期专业班级: 2012级4班软件工程 姓名: 张勇 学号: 2012110457 指导教师: 廖雪花 实验最终成绩: 实验报告须知1学生填写实验报告应按规范填写,填写格式见由任课老师给出的实验报告样本;2学生应填写的内容包括:封面相关栏目、第一页中本学期(年)开设实验课程情况一览表中的实验名称、学时数;每次报告中的实验性质、同组人姓名、实验日期、以及实验报告中的一至五项;3教师填写内容为:实验评价、每次报告成绩、第一页中本学期(年)开设实

2、验课程情况一览表中成绩、及封面的实验最终成绩;4学生实验结束后,教师应对学生实验结果进行核实,学生方可离开实验室。5、实验成绩等级分为(90100分)优,(8089分)良,(70-79分)中,(6069分)及格,(59分)不及格。6本实验册应妥善保管,本课程实验结束后应交回实验室。 本学期(年)开设实验课程情况一览表序号实验名称(学生实验后填写)学时数成绩(分数或等级)1抽象数据类型的表示与实现2线性表实验3栈和队列实验4稀疏矩阵实验5树和二叉树实验6图及其应用实验7查找和排序实验891011121314151617181920实验报告(1)实验名称抽象数据类型的表示与实现同组人姓名张勇实验性

3、质 基本操作 验证性 综合性 设计性实验日期8月30日实验成绩教师评价:实验预习 实验操作 实验结果 实验报告 其它 教师签名:一、实验目的及要求1) 熟悉类C语言的描述方法,学会将类C语言描述的算法转换为C源程序实现;2) 理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型(如三元组)。3) 认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结果,并结合程序进行分析。二、实验内容1)编程实现抽象数据类型三元组的定义、存储、基本操作(最大值、最小值、平均值等的求解),并设计一个主菜单完成各个功能的调用。三、主要设备及软件PC机1台, VC 6.0 平台4、实验流程、操

4、作步骤或核心代码、算法片段说明:这个实验的代码全部写到一个CPP文件中的#include#includeusing namespace std;#define TURE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int ElemType;typedef ElemType *Triplet;Status InitTriplet(Triplet &T,ElemType v1,ElemType v2,ElemType v3)

5、 T = (ElemType *)malloc(3 * sizeof(ElemType); if(!T) exit(OVERFLOW); T0 = v1; T1 = v2; T2 = v3; return OK;Status DestroyTriplet(Triplet &T) free(T); T = NULL; return OK;Status Get(Triplet T,int i,ElemType &e) if(i3) return ERROR; e = Ti - 1; return OK;Status Put(Triplet &T, int i,ElemType e) if(i3)

6、return ERROR; Ti -1 = e; return OK;Status IsAscending(Triplet T) if(T0 T1) | (T1 T1) | (T1 T2) return 1; else return 0;Status Max(Triplet T,ElemType &e) if(T0 = T1) if(T0 = T2) e = T0; else e = T2; else if(T1 = T2) e = T1; else e = T2; return OK;Status Min(Triplet T,ElemType &e) if(T0 = T1) if(T0 =

7、T2) e = T0; else e = T2; else if(T1 = T2) e = T1; else e = T2; return OK;int Select(Triplet &T) int option; int i; ElemType e; cout endl; cout 1.销毁三元组 endl; cout 2.查找元素 endl; cout 3.改变元素 endl; cout 4.判断是否升序排列 endl; cout 5.判断是否降序排列 endl; cout 6.显示最大值 endl; cout 7.显示最小值 endl; cout 8.安全退出 endl; cout en

8、dl; coutoption; switch(option) case 1: DestroyTriplet(T); break; case 2: couti; Get(T,i,e); cout第i个数的值为eendl; break; case 3: couti; cout你需要将第ie; Put(T,i,e); break; case 4: if(IsAscending(T) = 1) cout该三元组为升序排列.endl; else cout该三元组不是升序排列.endl; break; case 5: if(IsDescending(T) = 1) cout该三元组为降序排列.endl;

9、else cout该三元组不是降序排列.endl; break; case 6: Max(T,e); cout最大值为eendl; break; case 7: Min(T,e); cout最小值为eendl; break; case 8: exit(0); default: cout输入的选项有误,请重新输入.endl; break; getchar(); getchar(); system(cls); return Select(T);int main() Triplet T; int v1,v2,v3; coutv1v2v3; system(cls); InitTriplet(T,v1,

10、v2,v3); Select(T); return 0; 五、实验结果的分析与评价这个实验让我第一次接触到了抽象数据类型,感觉十分震撼,学到了很多。实验报告(2)实验名称线性表实验同组人姓名张勇实验性质 基本操作 验证性 综合性 设计性实验日期8月30日实验成绩教师评价:实验预习 实验操作 实验结果 实验报告 其它 教师签名:一、实验目的及要求1) 熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现;2)以线性表的各种操作(建立、插入、删除等)的实现为重点;3)通过本次实习帮助学生加深对高级语言C语言的使用(特别是函数参数、指针类型、链表的使用)。2) 认真阅读和掌握本实验的参考

11、程序,上机运行本程序, 保存和打印出程序的运行结果,并结合程序进行分析。按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。2、实验内容1) 编程实现线性表两种存储结构中的基本操作的实现(线性表的创建、插入、删除和查找),并设计一个主菜单完成各个功能的调用。三、主要设备及软件PC机1台, VC 6.0 平台四、实验流程、操作步骤或核心代码、算法片段 /declar.h/#ifndef ABC_D#define ABC_D#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1

12、#define OVERFLOW -2#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef int ElemType;typedef int Status;typedef struct ElemType *elem; int length; int listsize;SqList;static Status InitList(SqList &L);static Status DestroyList(SqList &L);static Status ClearList(SqList &L);static Status ListEmpt

13、y(SqList L);static Status ListLength(SqList L);static Status GetElem(SqList L,ElemType i,ElemType &e);/Status LocateElem(SqList L,ElemType e,compare();static Status PriorElem(SqList L,ElemType cur_e,ElemType &pre_e);static Status NextElem(SqList L,ElemType cur_e,ElemType &next_e);static Status ListI

14、nsert(SqList &L,ElemType i,ElemType e);static Status ListDelete(SqList &L,ElemType i,ElemType &e);/Status ListTraverse(SqList L,visit()#endif/function.cpp/#includedeclar.h#include#include#includeusing namespace std;static int option;static ElemType i,e;static ElemType cur_e,pre_e,next_e;static SqLis

15、t L;Status InitList(SqList &L) L.elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType); if(! L.elem) exit(OVERFLOW); L.length = 0; L.listsize = LIST_INIT_SIZE; return OK;Status DestroyList(SqList &L) if(! L.elem)exit(OVERFLOW); free(L.elem); L.length = L.listsize = 0; return OK;Status ClearLis

16、t(SqList &L) if(! L.elem)exit(OVERFLOW); L.length = 0; return OK;Status ListEmpty(SqList L) if(! L.elem)exit(OVERFLOW); if(L.length = 0) return TRUE; else return FALSE;Status ListLength(SqList L) if(! L.elem)exit(OVERFLOW); return L.length;Status GetElem(SqList L,ElemType i,ElemType &e) if(! L.elem)

17、exit(OVERFLOW); if(iL.length) return ERROR; e = L.elemi - 1; return OK;/*Status LocateElem(SqList L,ElemType e,compare()*/Status PriorElem(SqList L,ElemType cur_e,ElemType &pre_e) if(! L.elem)exit(OVERFLOW); for(int ix = 1;ix L.length;+ix) if(cur_e = L.elemix) pre_e = L.elemix - 1; return OK; return

18、 FALSE;Status NextElem(SqList L,ElemType cur_e,ElemType &next_e) if(! L.elem)exit(OVERFLOW); for(int ix = 0;ix L.length - 1;+ix) if(cur_e = L.elemix) next_e = L.elemix + 1; return OK; return FALSE;Status ListInsert(SqList &L,ElemType i,ElemType e) if(! L.elem)exit(OVERFLOW); if(i L.length + 1) retur

19、n ERROR; if(L.length = L.listsize) ElemType *newbase; newbase = (ElemType *)realloc(L.elem,(L.listsize + LISTINCREMENT) * sizeof(ElemType); if(! newbase) exit(OVERFLOW); L.elem = newbase; L.listsize += LISTINCREMENT; for(int ix = L.length + 1;ix i;-i) L.elemix = L.elemix - 1; L.elemi = e; +L.length;

20、 return OK;Status ListDelete(SqList &L,ElemType i,ElemType &e) if(! L.elem)exit(OVERFLOW); if(i L.length) return ERROR; e = L.elemi - 1; for(int ix = i - 1;ix L.length;+ix) L.elemix =L.elemix + 1; -L.length; return OK;static int Interface() coutendl; cout 线性表 endl; coutendl; cout endl; cout 0.建立线性表

21、endl; cout 1.销毁线性表 endl; cout 2.将线性表置空 endl; cout 3.判断线性表是否为空 endl; cout 4.查找制定位置元素的值 endl; cout pare判定线性表 endl; cout 6.查找输入数据的前驱 endl; cout 7.查找输入数据的后继 endl; cout 8.指定位置插入数据元素 endl; cout 9.制定位置删除数据元素 endl; cout 10.visit判定线性表 endl; cout 11.安全退出程序 endl; cout endl; coutendl; coutoption; if(option = 0)

22、 InitList(L); switch(option) case 1: DestroyList(L); break; case 2: ClearList(L); break; case 3: ListEmpty(L); break; case 4: couti; GetElem(L,i,e); cout第i个数据的值为: eendl; case 5: case 6: coutcur_e; PriorElem(L,cur_e,pre_e); coutcur_e的前驱为: pre_eendl; break; case 7: coutcur_e; NextElem(L,cur_e,next_e);

23、 coutcur_e的前驱为: next_eendl; break; case 8: couti; coute; if(ListInsert(L,i,e) = OK) cout插入数据元素成功!endl; cout按回车键返回.; break; case 9: couti; if(ListDelete(L,i,e) = OK) cout已经将i位置的e元素成功删除!endl; cout按回车键返回.; break; case 10:; getchar(); system(cls); return OptionMenu();/the_main.cpp/#includefunction.cppin

24、t main() OptionMenu(); return 0;五、实验结果的分析与评价实验报告(3)实验名称抽象数据类型的表示与实现同组人姓名栈、队列实验实验性质 基本操作 验证性 综合性 设计性实验日期8月30日实验成绩教师评价:实验预习 实验操作 实验结果 实验报告 其它 教师签名:一、实验目的及要求1) 掌握栈和队列这两种特殊的线性表,熟悉它们的特性,在实际问题背景下灵活运用它们。2) 本实验训练的要点是“栈”和“队列”的观点;二、实验内容1) 利用栈,实现任一个表达式中的语法检查(如括号的匹配)。2) 编程实现队列在两种存储结构中的基本操作(队列的初始化、判队列空、入队列、出队列);三、主要设备及软件PC机1台, VC

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1