/*
Name: triplet.c
Copyright: 2113040833
Author: 付佳伟
Date: 07/03/22 22:01
Description: 设计实现抽象数据类型三元组
*/
#include<Stdio.h>
#define true 1
#define error 0
#define number 5
typedef int status;
typedef float elemtype;
typedef struct
{
elemtype e[3];
}triplet;
status inittriplet(triplet &T,elemtype v0,elemtype v1,elemtype v2)
{ T.e[0]=v0 ;
T.e[1]=v1 ;
T.e[2]=v2 ;
return true;
}
status destroyriplet(triplet &T)
{ return true;
}
//用e获取T的第i(0~2)个元素的值 //
status getelem(triplet T,status i,elemtype &e)
{
if (i<1||i>3)
return error;
else
e=T.e[i-1];
return true;
}
//置T的第i的元的值为e//
status putelem(triplet &T,status i,elemtype e)
{ if (i<1||i>3)
return error;
else
T.e[i-1]=e;
return true;
}
//如果T的三个元素按升序排列,则返回1,否则返回2//
status isascending(triplet T)
{ return (T.e[0]<=T.e[1])&&(T.e[1]<=T.e[2]);
}
//如果T的三个元素按降序排列,则返回1,否则返回2//
status isdescending(triplet T)
{ return (T.e[0]>=T.e[1])&&(T.e[1]>=T.e[2]);
}
//用e返回指向T的最大元素的值//
elemtype getmaxelem(triplet T,elemtype &e)
{
if(T.e[0]>T.e[1])
e=T.e[0];
else
e=T.e[1];
if(T.e[2]>e)
e=T.e[2];
return e;
}
//用e返回指向T的最小元素的值//
elemtype getminelem(triplet T,elemtype &e)
{
if(T.e[0]<T.e[1])
e=T.e[0];
else
e=T.e[1];
if(T.e[2]<e)
e=T.e[2];
return e;
}
int main()
{ triplet T;
status flag;
elemtype v0,v1,v2,e;
printf("进入三元组的三个值v0,v1,v2:\n");
scanf("%f,%f,%f",&v0,&v1,&v2);
flag=inittriplet(T,v0,v1,v2);
printf("调用初始化函数后,flag=%d,T的三个值:v0=%4.2f,v1=%4.2f,v2=%4.2f\n",flag,T.e[0],T.e[1],T.e[2]);
if(isascending(T))
printf("该三元组元素为升序\n");
if(isdescending(T))
printf("该三元组元素为降序\n");
printf("该三元组元素的最大值为:%4.2f该三元组元素的最小值为:%4.2f",getmaxelem(T,e),getminelem(T,e));
return true;
}
数据结构中抽象数据结构的表示和实现
最新推荐文章于 2023-01-15 13:23:26 发布