抽象数据类型的表示与实现(实验一)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

一.实验目的及要求

(1)熟悉类C语言的描述方法,学会将类C语言描述的算法转换为C源程序实现;

(2)理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型(如三元组);

(3)认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结果,并结合程序进行分析。

二.实验内容

(1)编程实现对一组从键盘输入的数据,计算它们的最大值、最小值等,并输出。

要求:将计算过程写成一个函数,并采用引用参数实现值的求解。

(2)编程实现抽象数据类型三元组的定义、存储和基本操作,并设计一个主菜单完成各个功能的调用。

三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)(1)编程实现对一组从键盘输入的数据,计算它们的最大值、最小值等,并输出。

要求:将计算过程写成一个函数,并采用引用参数实现值的求解。

程序代码部分:

头文件:

#define N 10000

void comparason(double a[],int n,double &max,double &min);

主函数:

#include""

#include""

int main()

{

int n;

printf("请输入数据个数\n");

scanf("%d",&n);

double a[N],max,min;

int i;

printf("请输入数据(空格隔开)\n");

for(i=0;i

{

scanf("%lf",&a[i]);

}

comparason(a,n,max,min);

printf("最大值为%lf,最小值为%lf\n",max,min);

return 0;

}

功能函数:

#include""

#include""

void comparason(double a[],int n,double &max,double &min) {

int i;

max=a[0];

min=a[0];

for(i=0;i

{

if(max

{

max=a[i];

}

if(min>a[i])

{

min=a[i];

}

}

return;

}

运行结果:

(2)编程实现抽象数据类型三元组的定义、存储和基本操作,并设计一个主菜单完成各个功能的调用。

程序代码部分:

头文件:

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

typedef int Status;

typedef int ElemType;

typedef ElemType *Triplet;

Status InitTriplet(Triplet &T,ElemType v1,ElemType v2,ElemType v3); Status DestroyTriplet(Triplet &T);

Status Get(Triplet T,int i,ElemType &e);

Status Put(Triplet &T,int i,ElemType e);

Status IsAscending(Triplet T);

Status IsDescending(Triplet T);

Status Max(Triplet T,ElemType &e);

Status Min(Triplet T,ElemType &e);

主函数:

#include""

#include""

#include""

int main()

{

Triplet T;

ElemType v1,v2,v3;

printf("请输入三个数\n");

scanf("%d%d%d",&v1,&v2,&v3);

int x;

InitTriplet(T,v1,v2,v3);

do

{

printf("请选择下面操作\n");

printf("1、销毁三元组\n");

printf("2、查看第i个值\n");

printf("3、修改第i个值\n");

printf("4、判断是否为升序\n");

printf("5、判断是否为降序\n");

printf("6、查看最大值\n");

printf("7、查看最小值\n");

printf("0、结束程序!\n");

scanf("%d",&x);

switch(x)

{

case 1:

DestroyTriplet(T);

printf("三元组已销毁,若想进行其他操作,需重启程序,新建三元组\n");

break;

case 2:

printf("请输入要查看的位置\n");

int a,e;

scanf("%d",&a);

相关文档
最新文档