数据结构三元组实验报告_数据结构三元组

#include&ltiostream&gt

#include&ltmalloc.h&gt

#include&ltiomanip&gt

using namespace std;

#define TRRE1

#define FALSE0

#define OK1

#define ERROR0

#define INFRASIBLE-1

#define OVERFLOW-2

typedef int Status;

typedef double ElemType;

typedef ElemType *Triplet;

Status IniTriplet(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 DestoryTriplet (Triplet &T){

free(T); T=NULL;

return OK;

}

Status Get(Triplet T,int i ,ElemType &e){

if(i&lt1||i&gt3)return ERROR;

e=T[i-1];

return OK;

}

Status Put(Triplet &T, int i, ElemType e){

if(i&lt1||i&gt3)return ERROR;

T[i-1]=e;

return OK;

}

Status IsAscending(Triplet T){

return(T[0]&lt=T[1])&&(T[1]&lt=T[2]);

}

Status IsDescending(Triplet T){

return(T[0]&gt=T[1])&&(T[1]&gt=T[2]);

}

Status Max(Triplet T,ElemType &e){

e=(T[0]&gt=T[1])?((T[0]&gt=T[2])?T[0]:T[2]):((T[1]&gt=T[2])?T[1]:T[2]);

return OK;

}

Status Min(Triplet T,ElemType &e){

e=(T[0]&lt=T[1])?((T[0]&lt=T[2])?T[0]:T[2]):((T[1]&lt=T[2])?T[1]:T[2]);

return OK;

}

Status Show(Triplet &T){

int i;

cout&lt&lt"_______________"&lt&ltendl;

if(!T){

cout&lt&lt"The Triplet is empty!"&lt&ltendl;

return ERROR;

}

for(i=0;i&lt3;i++){

cout&lt&lt"|"&lt&ltsetw(6)&lt&ltT[i]&lt&ltsetw(6)&lt&lt"|"&lt&ltendl;

}

cout&lt&lt"_______________"&lt&ltendl;

return OK;

}

float Average(Triplet &T){

float m;

m=(T[0]+T[1]+T[2])/3;

return m;

}

void main(){

Triplet T;

ElemType v1,v2,v3;

ElemType v_enter;

int order;

int place;

int k;

cout&lt&lt"Enter the first number:"&lt&ltendl;

cin&gt&gtv1;

cout&lt&lt"Enter the second number:"&lt&ltendl;

cin&gt&gtv2;

cout&lt&lt"Enter the third number:"&lt&ltendl;

cin&gt&gtv3;

IniTriplet(T,v1,v2,v3);

Show(T);

while(T){

cout&lt&lt"1:put elem"&lt&ltendl;

cout&lt&lt"2:get elem"&lt&ltendl;

cout&lt&lt"3:average"&lt&ltendl;

cout&lt&lt"4:the max elem"&lt&ltendl;

cout&lt&lt"5:the min elem"&lt&ltendl;

cout&lt&lt"6:destory and exit"&lt&ltendl;

cin&gt&gtorder;

switch(order){

case 1:

cout&lt&lt"输入一个数:"&lt&ltendl;

cin&gt&gtv_enter;

cout&lt&lt"你想插入的位置:"&lt&ltendl;

cin&gt&gtplace;

Put(T,place,v_enter);

Show(T);

break;

case 2:

cout&lt&lt"选择一个位置(1-3)"&lt&ltendl;

cin&gt&gtplace;

Get(T,place,v_enter);

cout&lt&lt"_______________"&lt&ltendl;

cout&lt&lt"|"&lt&ltsetw(3)&lt&lt"第"&lt&ltplace&lt&lt"个数为:"&lt&ltv_enter&lt&ltsetw(2)&lt&lt"|"&lt&ltendl;

cout&lt&lt"_______________"&lt&ltendl;

break;

case 3:

cout&lt&lt"_______________"&lt&ltendl;

cout&lt&lt"|"&lt&ltsetw(3)&lt&lt"平均数为"&lt&ltAverage(T)&lt&ltsetw(2)&lt&lt"|"&lt&ltendl;

cout&lt&lt"_______________"&lt&ltendl;

break;

case 4:

Max(T,v_enter);

cout&lt&lt"_______________"&lt&ltendl;

cout&lt&lt"|"&lt&ltsetw(3)&lt&lt"最大值为"&lt&ltv_enter&lt&ltsetw(2)&lt&lt"|"&lt&ltendl;

cout&lt&lt"_______________"&lt&ltendl;

break;

case 5:

Min(T,v_enter);

cout&lt&lt"_______________"&lt&ltendl;

cout&lt&lt"|"&lt&ltsetw(3)&lt&lt"最小值为"&lt&ltv_enter&lt&ltsetw(2)&lt&lt"|"&lt&ltendl;

cout&lt&lt"_______________"&lt&ltendl;

break;

case 6:

DestoryT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值