抽象数据类型Triplet的表示和实现
2013-04-08 19:20
369 查看
抽象数据类型Triplet的表示和实现
Common.h
Triplet.h
运行结果:
Common.h
#define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int Status;
Triplet.h
#include "Common.h" #define ElemType int typedef ElemType * Triplet;//由InitTriplet分配3个元素存储空间 //--------------基本操作的函数,及说明---------------- Status InitTriplet(Triplet &T, ElemType v1, ElemType v2, ElemType v3); //操作结果:构造了三元组T,元素e1,e2和e3的值分别被赋以参数v1,v2,v3的值。 Status DestroyTriplet(Triplet &T); //操作结果:三元组T被销毁。 Status Get(Triplet T, int i, ElemType &e); //初始条件:三元组T已存在,1<=i<=3。 //操作结果:用e返回T的第i元的值 Status Put(Triplet &T, int i, ElemType e); //初始条件:三元组T已存在,1<=i<=3。 //操作结果:改变T的第i元的值为e。 Status IsAscending(Triplet T); //初始条件:三元组T已存在。 //操作结果:如果三元组T的3个元素按升序排列,则返回1,否则返回0。 Status IsDescending(Triplet T); //初始条件:三元组T已存在。 //操作结果:如果三元组T的3个元素按降序排列,则返回1,否则返回0。 Status Max(Triplet T, ElemType &e); //初始条件:三元组T已存在。 //操作结果:用e返回T的3个元素中的最大值。 Status Min(Triplet T, ElemType &e); //初始条件:三元组T已存在。 //操作结果:用e返回T的3个元素中的最小值。Triplet.cpp
#include <iostream> #include <stdlib.h> #include "Common.h" #include "Triplet.h" Status InitTriplet(Triplet &T, ElemType v1, ElemType v2, ElemType v3) { //操作结果:构造了三元组T,元素e1,e2和e3的值分别被赋以参数v1,v2,v3的值。 T = (ElemType *)malloc(3 * sizeof(ElemType)); if(!T) exit(OVERFLOW); //分配存储空间失败 T[0] = v1; T[1] = v2; T[2] = v3; return OK; } //InitTriplet Status DestroyTriplet(Triplet &T) { //操作结果:三元组T被销毁。 free(T); T = NULL; return OK; } //DestroyTriplet Status Get(Triplet T, int i, ElemType &e){ //用e返回T的第i元的值 if(i<1 || i>3) return ERROR; e = T[i-1]; return OK; } //Get Status Put(Triplet &T, int i, ElemType e) { //1<=i<=3。 //改变T的第i元的值为e。 if(i<1 || i>3) return ERROR; T[i-1] = e; return OK; } // Put Status IsAscending(Triplet T) { //如果三元组T的3个元素按升序排列,则返回1,否则返回0。 return (T[0] >= T[1]) && (T[1] >= T[2]); } //IsAscending Status IsDescending(Triplet T) { //如果三元组T的3个元素按降序排列,则返回1,否则返回0。 return (T[0] <= T[1]) && (T[1] <= T[2]); } //IsDescending Status Max(Triplet T, ElemType &e) { //用e返回T的3个元素中的最大值。 e = (T[0] >= T[1]) ? ((T[0] >= T[2]) ? T[0]:T[2]) : ((T[1] >= T[2]) ? T[1]:T[2]); return OK; } Status Min(Triplet T, ElemType &e) { //用e返回T的3个元素中的最小值。 e = (T[0] <= T[1]) ? ((T[0] <= T[2]) ? T[0]:T[2]) : ((T[1] <= T[2]) ? T[1]:T[2]); return OK; }main.cpp
#include <iostream> #include <stdlib.h> #include "Triplet.h" int main() { Triplet triplet; //定义一个三元组 ElemType e; int i; InitTriplet(triplet, 4, 7, 5); for(i=0;i<3;i++) { Get(triplet, i+1, e); printf("%d %d\n", triplet[i],e); } e = 13; Put(triplet, 2, e); for(i=0;i<3;i++) printf("%d ", triplet[i]); printf("\n"); if(IsAscending(triplet)) printf("升序\n"); else { if(IsDescending(triplet)) printf("降序\n"); else printf("乱序\n"); } Max(triplet, e); printf("最大值: %d\n", e); Min(triplet, e); printf("最小值: %d\n", e); system("pause"); return 0; }
运行结果:
相关文章推荐
- 抽象数据类型Triplet的表示和实现
- 抽象数据类型Triplet的表示和实现
- 抽象数据类型Triplet的表示和实现
- 抽象数据类型Triplet的表示和实现
- 数据结构(严蔚敏)抽象数据类型Triplet的表示与实现(第一章)
- 抽象数据类型 Triplet 的表示和实现
- 抽象数据类型Triplet的表示与实现
- 抽象数据类型的表示与实现
- 数据结构--抽象数据类型(ADT)的表示与实现
- 抽象数据类型的表示与实现
- 抽象数据类型的表示与实现
- 一元多项式的表示及相加(抽象数据类型Polynomial的实现)
- 抽象数据类型的表示与实现
- 抽象数据类型的表示与实现
- 数据结构课程(共40课) 第二课 抽象数据类型的表示与实现
- 抽象数据类型的表示和实现
- 1.3 抽象数据类型表示和实现
- 数据结构(一) 抽象数据类型的表示与实现
- 数据结构教程 第二课 抽象数据类型的表示与实现
- 数据结构(C语言版)第一章 抽象数据类型的表示与实现