严蔚敏版数据结构->第一章 程序

/*_############################################################################
_##
_##  严蔚敏版数据结构->第一章 程序
_##  Author: xwlee
_##  Time: 2007.09.16
_##  Chang'an University
_##  Development condition: win2003 Server+VC6.0 (使用了C/C++语法)
_##
_##  http://csdn.net/Micro_lee
_##
_##  数据结构程序测试--抽象数据类型Triplet
_##########################################################################*/

#include <stdlib.h>
#include <stdio.h>

//函数结果状态代码
#define TRUE         1
#define FALSE        0
#define OK           1
#define ERROR        0
#define INFEASIBLE  -1
#define OVERFLOW    -2

typedef int Status;  //定义函数返回类型
typedef int ElemType;  //定义数组元素类型，具体情况要自己定义

typedef ElemType *Triplet;

//基本操作的实现
Status InitTriplet( Triplet &T, ElemType v1, ElemType v2, ElemType v3 )
{
T = (ElemType *)malloc( 3*sizeof(ElemType) );
if(!T)
exit(OVERFLOW);
T[0] = v1; T[1] = v2; T[2] = v3;

return OK;
}

Status DestroyTriplet( Triplet &T )
{
free( T );
T = NULL;
return OK;
}

Status Get( Triplet T, int i, ElemType &e)
{
if( i<1 || i>3)  return ERROR;
e = T[i-1];
return OK;
}

Status Put( Triplet &T, int i, ElemType e)
{
if( i<1 || i>3)  return ERROR;
T[i-1] = e;
return OK;
}

Status IsAscending( Triplet T)
{
return (T[0]<=T[1]) && (T[1]<=T[2]);
}

Status IsDescending( Triplet T)
{
return (T[0]>=T[1]) && (T[1]>=T[2]);
}

Status 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;
}

Status 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;
}

int main()
{
Triplet p;
ElemType x,y,z;
int i,e, my_max, my_min;

scanf("%d %d %d", &x, &y, &z );

if( InitTriplet( p, x, y, z) != OK )
printf("Init is error!/n");

for( i=1; i<4; i++  )
{
Get( p, i, e);
printf("Get(%d)=%d/n", i, e);
}

Put( p, 1, 100);
Put( p, 2, 200);
Put( p, 3, 300);

for( i=1; i<4; i++  )
{
Get( p, i, e);
printf("Get(%d)=%d/n", i, e);
}

Max( p, my_max );
Min( p, my_min );
printf("/nIsAscending=%d/nIsDescending=%d/nMax=%d/nMin=%d/n/n", IsAscending(p), IsDescending(p), my_max, my_min );

DestroyTriplet( p );
return 0;
}

• 本文已收录于以下专栏：

举报原因： 您举报文章：严蔚敏版数据结构->第一章 程序 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)