设计实现抽象数据类型“三元组”,要求动态分配内存

编程入门 行业动态 更新时间:2024-10-28 22:24:31

设计实现<a href=https://www.elefans.com/category/jswz/34/1765602.html style=抽象数据类型“三元组”,要求动态分配内存"/>

设计实现抽象数据类型“三元组”,要求动态分配内存

基本操作包括:创建一个三元组,取三元组的任意一个分量,置三元组的任意一个分量,求三元组的最大分量,求三元组的最小分量,显示三元组,销毁三元组。

#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2typedef int Status;//给int型起个别名为Status 
typedef float ElemType;//三元组的类型先定义为float,可以随时变换为别的类型 
typedef ElemType* Triplet;//定义指针指向Triplet //创建三元组T,依此置T的3个元素初值 
Status InitTriplet(Triplet &T,ElemType v1,ElemType v2,ElemType v3){T = (ElemType*)malloc(3*sizeof(ElemType));//分配3个元素的存储空间 if(!T)exit (OVERFLOW);//分配空间失败 T[0]=v1; T[1]=v2; T[2]=v3;return OK;
}//取出三元组中第i个元素的值 
Status Get(Triplet T,Status i,ElemType &e){if(i<1||i>3)return ERROR;elsee=T[i-1];return OK;
}//置三元组T的第i元的值为e 
Status Put(Triplet &T,Status i,ElemType e){if(i<1||i>3)return ERROR;elseT[i-1]=e;return OK;
}//求三元组的最大分量 
Status Max(Triplet T,ElemType &e){if(T[0]>T[1])e=T[0];elsee=T[1];if(T[2]>e)e=T[2];return e;
}//求三元组的最小分量 
Status Min(Triplet T,ElemType &e){if(T[0]<T[1])e=T[0];elsee=T[1];if(T[2]<e)e=T[2];return e;
}//显示三元组 
Status Print(Triplet T){printf("三元组为:\n");printf("%f %f %f",T[0],T[1],T[2]);printf("\n");
}//销毁三元组 
Status DestroyTriplet(Triplet &T){free(T);T=NULL;return OK;
}Status main()
{ElemType v1,v2,v3;Status i,n,flag;//n为循环,flag为操作序号 ElemType e,e1,e2;//e1=max,e2=min Triplet T;printf("请给三元组V1,v2,v3赋值:\n");scanf("%f %f %f",&v1,&v2,&v3);InitTriplet(T,v1,v2,v3);Get(T,i,e);Put(T,i,e);printf("该程序可进行如下操作:1.求最大值。2.求最小值。3.输出所有数值。\n");//利用循环进行操作 for(n=1; n<=3; n++)
{printf("请输入需操作序号\n");scanf("%d",&flag);if(flag==1){e1=Max(T,e);printf("三元组最大值为:%f",e1);printf("\n\n");}if(flag==2){e2=Min(T,e);printf("三元组最小值为:%f",e2);printf("\n\n");}if(flag==3)Print(T);}DestroyTriplet(T);return OK;}

更多推荐

设计实现抽象数据类型“三元组”,要求动态分配内存

本文发布于:2023-07-27 22:11:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1227547.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:抽象   数据类型   内存   动态分配

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!