读书人

Trilplet的示意和实现 教材例1-7

发布时间: 2012-08-25 10:06:20 作者: rapoo

Trilplet的表示和实现 教材例1-7

重新学习数据结构,感觉还行,坚持!

#include<iostream>#include<stdio.h>#include<stdlib.h>using namespace std;#define  TRUE        1#define  FALSE       0#define  OK          1#define  ERROR       0#define  INFEASIBLE  -1#define  OVERFLOW    -2#define  ElemType    int     //定义数据类型为int型typedef  int  Status;typedef ElemType *   Triplet;Status InitTriplet(Triplet &T, ElemType v1, ElemType v2, ElemType v3){//构造三元组T,依次置T的3个元素的初值为v1,v2,v3.T = (ElemType *)malloc(3 * sizeof(ElemType));   //分配3个元素的存储空间if(!T) exit(OVERFLOW);   //分配存储空间失败T[0] = v1;T[1] = v2;T[2] = v3;return OK;}//InitTripletStatus DestroyTriplet(Triplet &T){//销毁三元组T。free(T);T = NULL;return OK;}//DestroyTripletStatus Get(Triplet T, int i, ElemType &e){//1<=i<=3,用e返回T的第i元的值if(i<1  ||  i>3)return ERROR;e = T[i-1];return OK;}//GetStatus Put(Triplet &T, int i, ElemType e){//1<=i<=3,置T的第i元的值为eif(i<1   ||   i>3)return ERROR;T[i-1] = e;return OK;}//PutStatus IsAscending(Triplet T){//如果T的3个元素按升序排列,则返回1,否则返回0return(T[0]<=T[1]) && (T[1]<=T[2]);}//IsAscendingStatus IsDescending(Triplet T){//如果T的3个元素按降序排列,则返回1,否则返回0return(T[0]>=T[1]) && (T[1]>=T[2]);}//IsDecendingStatus Max(Triplet T, ElemType &e){e = (T[0]>=T[1]) ? ((T[0]>=T[2]) ? T[0] : T[2]) : ((T[1]>=T[2]) ? T[1]:T[2]);return OK;}//MaxStatus Min(Triplet T, ElemType &e){e = (T[0]<=T[1]) ? ((T[0]<=T[2]) ? T[0] : T[2]) : ((T[1]<=T[2]) ? T[1]:T[2]);return OK;}//Minint main(){Triplet T;int m;InitTriplet(T, 3, 5, 8);cout<<T[0]<<" "<<T[1]<<" "<<T[2]<<" "<<endl;Get(T, 2, m);cout<<m<<endl;Put(T, 2, 18);cout<<IsAscending(T)<<endl;cout<<IsDescending(T)<<endl;Max(T, m);cout<<"max:  "<<m<<endl;Min(T, m);cout<<"min:  "<<m<<endl;DestroyTriplet(T);return 0;}

读书人网 >编程

热点推荐