数据结构 实验报告完整版Word文档下载推荐.docx
- 文档编号:13681453
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:76
- 大小:532.27KB
数据结构 实验报告完整版Word文档下载推荐.docx
《数据结构 实验报告完整版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构 实验报告完整版Word文档下载推荐.docx(76页珍藏版)》请在冰豆网上搜索。
6.本实验册应妥善保管,本课程实验结束后应交回实验室。
本学期(年)开设实验课程情况一览表
序号
实验名称
(学生实验后填写)
学时数
成绩
(分数或等级)
1
抽象数据类型的表示与实现
2学时
2
线性表实验
4学时
3
栈和队列实验
6学时
4
稀疏矩阵实验
5
树和二叉树实验
6
图及其应用实验
7
查找和排序实验
8
9
10
11
12
13
14
15
16
17
18
19
20
实验报告
(1)
同组人姓名
实验性质
□基本操作■验证性
■综合性□设计性
实验日期
2011年9月
30日
实验成绩
教师评价:
实验预习□实验操作□实验结果□实验报告□其它□
教师签名:
一、实验目的及要求
1)熟悉类C语言的描述方法,学会将类C语言描述的算法转换为C源程序实现;
2)理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型(如三元组)。
3)认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结果,并结合程序进行分析。
二、实验内容
1)编程实现抽象数据类型三元组的定义、存储、基本操作(最大值、最小值、平均值等的求解),并设计一个主菜单完成各个功能的调用。
三、主要设备及软件
1)PC机
2)TurboC2.0或VisualC++
四、实验流程、操作步骤或核心代码、算法片段
(一)头文件(H1.h)
#ifndefH1_H
#defineH1_H
#defineOK1
#defineERROR0
#defineOVERFLOW-2
typedefintStatus;
typedefintElemType;
typedefElemType*Triplet;
//函数声明
externStatusInitTriplet(Triplet&
T,ElemTypev1,ElemTypev2,ElemTypev3);
externStatusDestroyTriplet(Triplet&
T);
externStatusGet(TripletT,inti,ElemType&
e);
externStatusPut(Triplet&
T,inti,ElemTypee);
externStatusMax(TripletT,ElemType&
externStatusMin(TripletT,ElemType&
externStatusAverage(TripletT,ElemType&
#endif
(二)功能函数(function.cpp)
#include<
stdlib.h>
#include"
h1.h"
StatusInitTriplet(Triplet&
T,ElemTypev1,ElemTypev2,ElemTypev3)
{
T=(ElemType*)malloc(3*sizeof(ElemType));
if(!
T)
returnOVERFLOW;
T[0]=v1;
T[1]=v2;
T[2]=v3;
returnOK;
}
StatusDestroyTriplet(Triplet&
T)
free(T);
T=NULL;
StatusGet(TripletT,inti,ElemType&
e)
if(i<
1||i>
3)
returnERROR;
e=T[i-1];
StatusPut(Triplet&
T,inti,ElemTypee)
T[i-1]=e;
StatusMax(TripletT,ElemType&
e)
e=(T[0]>
=T[1])?
((T[0]>
=T[2])?
T[0]:
T[2]):
((T[1]>
=T[2])?
T[1]:
T[2]);
StatusMin(TripletT,ElemType&
e=(T[0]<
=T[1])?
((T[0]<
((T[1]<
StatusAverage(TripletT,ElemType&
e=(T[0]+T[1]+T[2])/3;
(三)主函数(triplet.cpp)
stdio.h>
voidmain()
Tripletp;
ElemTypee,v1,v2,v3;
inti;
intselect;
printf("
输入三个数,建立一个三元组\n"
);
scanf("
%d%d%d"
&
v1,&
v2,&
v3);
if(InitTriplet(p,v1,v2,v3)==OVERFLOW)
printf("
分配失败,退出程序!
"
else
do
{
printf("
1:
取三元组的最大值\n"
2:
取三元组的最小值\n"
3:
求三元组的平均值\n"
0:
结束!
\n"
请输入选择!
scanf("
%d"
select);
switch(select)
{case1:
Max(p,e);
printf("
最大值是:
%d\n"
e);
break;
case2:
Min(p,e);
最小值是:
case3:
Average(p,e);
平均值是:
case0:
操作结束!
break;
default:
输入选择出错!
}//endofswitch
}while(select!
=0);
//endofwhile
DestroyTriplet(p);
}//endofmain
五、实验结果的分析与评价
实验结果:
分析:
(1)类C语言面对对象,而C语言面对过程;
(2)核心算法就相当于C语言的程序;
(3)初步了解三元组的建立等知识;
(4)初步了解利用C++编程的步骤及编程的组成部分;
(5)初次接触还是对很多地方倍感疑惑,需要多多操作理解;
实验报告
(2)
线性表实验:
顺序存储、链式存储
2010年10月9日
1)熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现;
2)以线性表的各种操作(建立、插入、删除等)的实现为重点;
3)通过本次实习帮助学生加深对高级语言C语言的使用(特别是函数参数、指针类型、链表的使用)。
认真阅读和掌握本实验的参考程序,上机运行本程序,保存和打印出程序的运行结果,并结合程序进行分析。
按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果
1)编程实现线性表两种存储结构中的基本操作的实现(线性表的创建、插入、删除和查找),并设计一个主菜单完成各个功能的调用。
2)TurboC2.0或VisualC++
1.顺序存储的程序:
#defineLIST_INIT_SIZE100//线形表存储空间的初始分配量
#defineLISTINCREMENT10//线形表存储空间的分配增量
typedefstruct{
ElemType*elem;
//存储空间基址
intlength;
//当前长度
intlistsize;
//当前分配的存储容量
}SqList;
externStatusInitList_Sq(SqList&
L,intn);
externStatusListInsert_Sq(SqList&
L,inti,ElemTypee);
externStatusListDelete_Sq(SqList&
L,inti,ElemType&
externStatusLocateElem_Sq(SqListL,ElemTypee);
externStatusDestrory_Sq(SqList&
L);
stdlib.h"
stdio.h"
StatusInitList_Sq(SqList&
L,intn)
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
L.elem)
//存储分配失败
L.length=0;
//空表长
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验报告完整版 实验 报告 完整版