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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构实验报告Word文档下载推荐.docx

1、序号实验项目编号实验名称学时必做选做学分数实验类型内容提要基本操作验证综合设计1抽象数据类型的表示与实现2线性表实验4线性表的存储实现及有关应用3栈和队列实验栈和队列的基本操作及其实现,以及典型应用举例稀疏矩阵实验稀疏矩阵的压缩存储5树和二叉树实验树的两种种存储结构,及各种操作的算法实现(建立、遍历、线索化、最优二叉树)6图及其应用实验图的两种基本存储结构,及各种操作的算法实现(建立、遍历、图的典型应用)7查找和排序实验各种基本的查找和排序算法及其实现分析四、实验内容安排:实验一 抽象数据类型的表示与实现( 验证性实验 2 学时)1.目的要求:1) 熟悉类C语言的描述方法,学会将类C语言描述的

2、算法转换为C源程序实现;2) 理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型(如三元组)。3) 认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结果,并结合程序进行分析。2. 实验内容:1) 编程实现抽象数据类型三元组的定义、存储、基本操作(最大值、最小值、平均值等的求解),并设计一个主菜单完成各个功能的调用。Main.cpp#includeopretation.hstdio.hvoid main() Triplet T; init(T); operation.h#ifndef xxxx#define xxxx#define TRUE 1#define FALS

3、E 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); /构造并赋值Status DestroyTriplet(Triplet & /销毁Status Get(Triplet T,int i,ElemType &e); /返回第i的值Status Put(Triplet &T,int i,ElemType e); /改

4、变第i的值Status IsAscending(Triplet T); /若为升序,则返回1,否返回0Status IsDescending(Triplet T); /若为降序,则返回1,否返回0Status Max(Triplet T,ElemType & /返回最大值Status Min(Triplet T,ElemType & /返回最小值Status init(Triplet T);#endif Operatation.hhan shu.hstdlib.hStatus init(Triplet T) int i,e; char choice; printf(1.InitTriplet

5、构造并赋值n);2.DestroyTriplet 销毁n3.Get 返回第i的值n4.Put 改变第i的值n5.IsAscending 若为升序,则返回1,否返回0n6.IsDescending 若为降序,则返回1,否返回0n7.Max 返回最大值n8.Min 返回最小值n请输入你所选择的功能的序号: fflush(stdin); scanf(%c,&choice); switch(choice) case 1: InitTriplet(T); break;2 DestroyTriplet(T); break; case3 printf(请输入您想显示的数的位数:%di); Get(T,i,e

6、);4请输入您想改变的数的位数:请输入您想改成的整数: scanf( Put(T,i,e);5 IsAscending(T);6 IsDescending(T);7 Max(T,e);8 Min(T,e); default: 请重新选择:/选择序号输入错误时,提示重新选择 return 0;T)/构造并赋值 int v1,v2,v3;请输入三个整数:%d%d%dv1,&v2,&v3); T=(ElemType *)malloc(3 *sizeof(ElemType);/分配3个元素的储存空间 if(!T)exit(OVERFLOW);/分配空间失败 T0=v1; T1=v2; T2=v3; g

7、etchar(); system(CLS/清屏 return OK;T)/销毁 free(T); T=NULL;e)/返回第i的值 if(i3) return ERROR; e=Ti-1;当前位的数值为:,e);T,int i,ElemType e)/改变第i的值当位目前的数值为:%dn,Ti-1); Ti-1=e;修改后的结果为:Status IsAscending(Triplet T)/若为升序,则返回1,否返回0 int x;若为升序,则显示1,否则显示0n x=(T0=T1) & (T1 (T1e)/返回最大值 e=(T0=T1?(T0=T2?T0:T2):(T1T1:T2);最大值为

8、: return OK;e)/返回最小值 e=(T0(T0(T1最小值为:3.主要仪器设备及药品2) PC机3) Turbo C 2.0 或Visual C+实验二 线性表实验( 验证性实验 4 学时)1) 熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现;2)以线性表的各种操作(建立、插入、删除等)的实现为重点;3)通过本次实习帮助学生加深对高级语言C语言的使用(特别是函数参数、指针类型、链表的使用)。4) 认真阅读和掌握本实验的参考程序,上机运行本程序, 保存和打印出程序的运行结果,并结合程序进行分析。按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果

9、。3. 实验内容:1) 编程实现线性表两种存储结构中的基本操作的实现(线性表的创建、插入、删除和查找),并设计一个主菜单完成各个功能的调用。顺序存储: main.cpp#include #include Sqlist L;1. Initlist 创建n2. ListInsert 插入n3. ListDelete 删除n4. Serch 查找n5. exit 结束n while(1)nx); switch(x) case 1: Initlist(L); /创建 break; case 2: printf(请输入您想插入的数字 e= scanf( ListInsert(L,e); /插入 brea

10、k; case 3: ListDelete(L,e);/删除 case 4: Serch(L,e);/查找 case 5: exit(OVERFLOW);/结束 default: #define listinitsize 100#define listincrement 10typedef struct ElemType *elem; int length; int listsize;Sqlist;Status Initlist(Sqlist &L);/创建Status ListInsert(Sqlist &L,ElemType e);/插入Status ListDelete(Sqlist &

11、L,ElemType &Status Serch(Sqlist L,ElemType & Opretation.hinit.hL)/创建 int i; L.elem=(ElemType *)malloc(listinitsize * sizeof(ElemType);L.elem) exit(OVERFLOW); L.length=0; L.listsize=listinitsize; L.elem0=1; L.elem1=2; L.elem2=3; L.elem3=4; L.elem4=5;已存数据为 : for(i=0;i=L.listsize) newbase=(ElemType *)r

12、ealloc(L.elem,(L.listsize+listincrement)*sizeof(ElemType); if(!newbase) L.elem=newbase; L.listsize+=listincrement; q=&(L.elemi-1); for(p=&(L.elemL.length-1);p=q;-p) *(p+1)=*p; *q=e; +L.length; /printf(%dn ,L.length); for(j=0;jL.length;j+),L.elemj);e)/删除请输入您想删除的位置 i= if(iL.length) p=& e=*p;删除的数为 %d n

13、 q=L.elem+L.length-1; for(+p;p+p) *(p-1)=*p; -L.length;%d ne)/查找请输入您想查找的位置 i= e=L.elemi-1;查找结果 e= %dn链式存储: Main.cpp#include LinkList L; int i,e,n; int choi;主菜单:1.Create 构造并赋值n2.Insert 插入n3.Delete 删除n4.Serch 查找n5.Put 显示所有数据n6.exit 退出系统n请输入您选择的功能 choi); switch(choi) case 1:输入要写入的元素个数:n); GreateList_L(

14、L,n);请输入要插入的位置:请输入要插入的数: ListInsert_L(L,i,e); n+;/插入增加一个请输入要删除的位置n ListDelete_L(L,i,e); n-;/删除减少一个请输入你想查询的数的位置n GetElem_L(L,i,e); case 5:所有数据为: n Put_L(L,n); case 6: exit(ERROR); default:/ Opretation.cppStatus GreateList_L(LinkList &L,int n)/创建 LinkList p,q; L=(LinkList)malloc(sizeof(LNode); p=L;请输入您想输入的数值

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

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