读书笔记 《数据结构》严蔚敏,第一章的三元组实现,C++描述。
Triplet.h
#include
typedef int *Triplet;
typedef int Status;
enum value{WRONG=-2,OK,TRUE=10,FALSE=11};
Status InitTriplet(Triplet &T,int e1,int e2,int e3)
{
if((T=new int[3])==NULL)
return WRONG;
T[0]=e1;
T[1]=e2;
T[2]=e3;
return OK;
}
Status Get(Triplet T,int i,int &e)
{
if(i<0||i>3)
return WRONG;
e=T[i-1];
return OK;
}
Status Put(Triplet &T,int i,int e)
{
if(i<0||i>3)
return WRONG;
T[i-1]=e;
return OK;
}
bool IsAsscending(Triplet T)
{
return T[0]<=T[1]&&T[1]<=T[2];
}
bool IsDecending(Triplet T)
{
return T[0]>=T[1]&&T[1]>=T[2];
}
Status Max(Triplet T,int e)
{
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 "Triplet.h"
int main()
{
Triplet Tint;
int i,tmp;
if(InitTriplet(Tint,1,2,3)==OK)
{
for(i=1;i<=3;i++)
if(Get(Tint,i,tmp)==OK)
std::cout<<"三元组元素"< }
if(Put(Tint,2,5)==OK && Get(Tint,2,tmp)==OK)
std::cout<<"元素2的值被修改为:"<
if(IsAsscending(Tint)==true)
std::cout<<"三元组升序";
if(IsDecending(Tint)==true)
std::cout<<"三元组降序";
if(Max(Tint,tmp)==OK)
std::cout<<"最大元素"<
return 0;
}