抽象数据类型的表示与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("0、结束程序!\n");
scanf("%d",&x);
switch(x)
{
case 1:
DestroyTriplet(T);
printf("三元组已销毁,若想进行其他操作,需重启程序,新建三元组\n");
break;
case 2:
printf("请输入要查看的位置\n");
int a,e;
break;
case 4:
int f;
f=IsAscending(T);
if(f==1)
printf("是升序排列\n");
else
printf("不是升序排列\n");
break;
case 5:
int g;
g=IsDescending(T);
if(g==1)
printf("是降序排列\n");
else
scanf("%d",&a);
Get(T,a,e);
printf("第%d个值为%d\n",a,e);
break;
case 3:
printf("请输入要修改的位置和数值\n");
int b,c;
scanf("%d%d",&b,&c);
Put(T,b,c);
printf("修改后三个值为%d,%d,%d\n",T[0],T[1],T[2]);
主函数:
#include"stdio.h"
#include"1.h"
int main()
{
int n;
printf("请输入数据个数\n");
scanf("%d",&n);
double a[N],max,min;
int i;
printf("请输入数据(空格隔开)\n");
for(i=0;i<n;i++)
(1)编程实现对一组从键盘输入的数据,计算它们的最大值、最小值等,并输出。
要求:将计算过程写成一个函数,并采用引用参数实现值的求解。
程序代码部分:
头文件:
#define N 10000
void comparason(double a[],int n,double &max,double &min);
Status IsAscending(Triplet T);
Status IsDescending(Triplet T);
Status Max(Triplet T,ElemType &e);
Status Min(Triplet T,ElemType &e);
主函数:
#include"stdio.h"
#include"stdlib.h"
#include"1.h"
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");
二.实验内容
(1)编程实现对一组从键盘输入的数据,计算它们的最大值、最小值等,并输出。
要求:将计算过程写成一个函数,并采用引用参数实现值的求解。
(2)编程实现抽象数据类型三元组的定义、存储和基本操作,并设计一个主菜单完成各个功能的调用。
三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)
{
scanf("%lf",&a[i]);
}
comparason(a,n,max,min);
printf("最大值为%lf,最小值为%lf\n",max,min);
return 0;
}
功能函数:
#include"stdio.h"
#include"1.h"
void comparason(double a[],int n,double &max,double &min)
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);
头文件:
#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;
printf("不是降序排列\n");
break;
case 6:
int y;
Max(T,y);
printf("最大值为%d\n",y);
break;
case 7:
int z;
Min(T,z);
printf("最小值为%d\n",z);
break;
case 0:
printf("程序结束!\n");
break;
实验一抽象数据类型的表示与实现
一.实验目的及要求
(1)熟悉类C语言的描述方法,学会将类C语言描述的算法转换为C源程序实现;
(2)理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型(如三元组);
(3)认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结果,并结合程序进行分析。
default:printf("输入出错!\n");
}
}while(x!=0&&x!=1);
return 0;
}
功能函数:
#include"stdio.h"
#include"stdlib.h"
#include"1.h"
Status InitTriplet(Triplet &T,EleemType v3)
{
int i;
max=a[0];
min=a[0];
for(i=0;i<n;i++)
{
if(max<a[i])
{
max=a[i];
}
if(min>a[i])
{
min=a[i];
}
}
return;
}
运行结果:
(2)编程实现抽象数据类型三元组的定义、存储和基本操作,并设计一个主菜单完成各个功能的调用。
程序代码部分:
scanf("%d",&x);
switch(x)
{
case 1:
DestroyTriplet(T);
printf("三元组已销毁,若想进行其他操作,需重启程序,新建三元组\n");
break;
case 2:
printf("请输入要查看的位置\n");
int a,e;
break;
case 4:
int f;
f=IsAscending(T);
if(f==1)
printf("是升序排列\n");
else
printf("不是升序排列\n");
break;
case 5:
int g;
g=IsDescending(T);
if(g==1)
printf("是降序排列\n");
else
scanf("%d",&a);
Get(T,a,e);
printf("第%d个值为%d\n",a,e);
break;
case 3:
printf("请输入要修改的位置和数值\n");
int b,c;
scanf("%d%d",&b,&c);
Put(T,b,c);
printf("修改后三个值为%d,%d,%d\n",T[0],T[1],T[2]);
主函数:
#include"stdio.h"
#include"1.h"
int main()
{
int n;
printf("请输入数据个数\n");
scanf("%d",&n);
double a[N],max,min;
int i;
printf("请输入数据(空格隔开)\n");
for(i=0;i<n;i++)
(1)编程实现对一组从键盘输入的数据,计算它们的最大值、最小值等,并输出。
要求:将计算过程写成一个函数,并采用引用参数实现值的求解。
程序代码部分:
头文件:
#define N 10000
void comparason(double a[],int n,double &max,double &min);
Status IsAscending(Triplet T);
Status IsDescending(Triplet T);
Status Max(Triplet T,ElemType &e);
Status Min(Triplet T,ElemType &e);
主函数:
#include"stdio.h"
#include"stdlib.h"
#include"1.h"
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");
二.实验内容
(1)编程实现对一组从键盘输入的数据,计算它们的最大值、最小值等,并输出。
要求:将计算过程写成一个函数,并采用引用参数实现值的求解。
(2)编程实现抽象数据类型三元组的定义、存储和基本操作,并设计一个主菜单完成各个功能的调用。
三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)
{
scanf("%lf",&a[i]);
}
comparason(a,n,max,min);
printf("最大值为%lf,最小值为%lf\n",max,min);
return 0;
}
功能函数:
#include"stdio.h"
#include"1.h"
void comparason(double a[],int n,double &max,double &min)
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);
头文件:
#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;
printf("不是降序排列\n");
break;
case 6:
int y;
Max(T,y);
printf("最大值为%d\n",y);
break;
case 7:
int z;
Min(T,z);
printf("最小值为%d\n",z);
break;
case 0:
printf("程序结束!\n");
break;
实验一抽象数据类型的表示与实现
一.实验目的及要求
(1)熟悉类C语言的描述方法,学会将类C语言描述的算法转换为C源程序实现;
(2)理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型(如三元组);
(3)认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结果,并结合程序进行分析。
default:printf("输入出错!\n");
}
}while(x!=0&&x!=1);
return 0;
}
功能函数:
#include"stdio.h"
#include"stdlib.h"
#include"1.h"
Status InitTriplet(Triplet &T,EleemType v3)
{
int i;
max=a[0];
min=a[0];
for(i=0;i<n;i++)
{
if(max<a[i])
{
max=a[i];
}
if(min>a[i])
{
min=a[i];
}
}
return;
}
运行结果:
(2)编程实现抽象数据类型三元组的定义、存储和基本操作,并设计一个主菜单完成各个功能的调用。
程序代码部分: