数据结构 实验报告完整版.docx

上传人:b****1 文档编号:756324 上传时间:2022-10-12 格式:DOCX 页数:76 大小:532.27KB
下载 相关 举报
数据结构 实验报告完整版.docx_第1页
第1页 / 共76页
数据结构 实验报告完整版.docx_第2页
第2页 / 共76页
数据结构 实验报告完整版.docx_第3页
第3页 / 共76页
数据结构 实验报告完整版.docx_第4页
第4页 / 共76页
数据结构 实验报告完整版.docx_第5页
第5页 / 共76页
点击查看更多>>
下载资源
资源描述

数据结构 实验报告完整版.docx

《数据结构 实验报告完整版.docx》由会员分享,可在线阅读,更多相关《数据结构 实验报告完整版.docx(76页珍藏版)》请在冰豆网上搜索。

数据结构 实验报告完整版.docx

数据结构实验报告完整版

四川师范大学计算机学院

实验报告册

 

院系名称:

计算机科学学院

课程名称:

数据结构

实验学期2010年至2011年第一学期

专业班级:

2010级教育技术学

姓名:

学号:

指导教师:

实验最终成绩:

 

实验报告须知

1.学生填写实验报告应按规范填写,填写格式见由任课老师给出的实验报告样本;

2.学生应填写的内容包括:

封面相关栏目、第一页中‘本学期(年)开设实验课程情况一览表’中的实验名称、学时数;每次报告中的实验性质、同组人姓名、实验日期、以及实验报告中的一至五项;

3.教师填写内容为:

实验评价、每次报告成绩、第一页中‘本学期(年)开设实验课程情况一览表’中成绩、及封面的实验最终成绩;

4.学生实验结束后,教师应对学生实验结果进行核实,学生方可离开实验室。

5、实验成绩等级分为(90-100分)优,(80-89分)良,(70-79分)中,(60-69分)及格,(59分)不及格。

6.本实验册应妥善保管,本课程实验结束后应交回实验室。

本学期(年)开设实验课程情况一览表

序号

实验名称

(学生实验后填写)

学时数

成绩

(分数或等级)

1

抽象数据类型的表示与实现

2学时

2

线性表实验

4学时

3

栈和队列实验

6学时

4

稀疏矩阵实验

4学时

5

树和二叉树实验

6学时

6

图及其应用实验

6学时

7

查找和排序实验

4学时

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&e);

externStatusMin(TripletT,ElemType&e);

externStatusAverage(TripletT,ElemType&e);

#endif

 

(二)功能函数(function.cpp)

#include

#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;

returnOK;

}

StatusGet(TripletT,inti,ElemType&e)

{

if(i<1||i>3)

returnERROR;

e=T[i-1];

returnOK;

}

StatusPut(Triplet&T,inti,ElemTypee)

{

if(i<1||i>3)

returnERROR;

T[i-1]=e;

returnOK;

}

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]);

returnOK;

}

StatusMin(TripletT,ElemType&e)

{

e=(T[0]<=T[1])?

((T[0]<=T[2])?

T[0]:

T[2]):

((T[1]<=T[2])?

T[1]:

T[2]);

returnOK;

}

StatusAverage(TripletT,ElemType&e)

{

e=(T[0]+T[1]+T[2])/3;

returnOK;

}

(三)主函数(triplet.cpp)

#include

#include"h1.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");

printf("2:

取三元组的最小值\n");

printf("3:

求三元组的平均值\n");

printf("0:

结束!

\n");

printf("请输入选择!

\n");

scanf("%d",&select);

switch(select)

{case1:

Max(p,e);

printf("最大值是:

%d\n",e);break;

case2:

Min(p,e);

printf("最小值是:

%d\n",e);break;

case3:

Average(p,e);

printf("平均值是:

%d\n",e);break;

case0:

printf("操作结束!

");break;

default:

printf("输入选择出错!

\n");

}//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)编程实现线性表两种存储结构中的基本操作的实现(线性表的创建、插入、删除和查找),并设计一个主菜单完成各个功能的调用。

三、主要设备及软件

1)PC机

2)TurboC2.0或VisualC++ 

四、实验流程、操作步骤或核心代码、算法片段

1.顺序存储的程序:

(一)头文件(H1.h)

#ifndefH1_H

#defineH1_H

#defineLIST_INIT_SIZE100//线形表存储空间的初始分配量

#defineLISTINCREMENT10//线形表存储空间的分配增量

#defineOVERFLOW-2

#defineOK1

#defineERROR0

typedefintElemType;

typedefintStatus;

typedefstruct{

ElemType*elem;//存储空间基址

intlength;//当前长度

intlistsize;//当前分配的存储容量

}SqList;//函数声明

externStatusInitList_Sq(SqList&L,intn);

externStatusListInsert_Sq(SqList&L,inti,ElemTypee);

externStatusListDelete_Sq(SqList&L,inti,ElemType&e);

externStatusLocateElem_Sq(SqListL,ElemTypee);

externStatusDestrory_Sq(SqList&L);

#endif

(二)功能函数(function.cpp)

#include"stdlib.h"

#include"h1.h"

#include"stdio.h"

StatusInitList_Sq(SqList&L,intn)

{

inti;

L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));

if(!

L.elem)

returnOVERFLOW;//存储分配失败

L.length=0;//空表长

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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