资源描述:
《数据结构三元组ADTC语言实现代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include"stdio.h"//定义输入输出函数#include"stdlib.h"//定义杂项函数及内存分布函数atoi(),exit()#include"malloc.h"//malloc()等#include"math.h"//OVERFLOW#defineOK1#defineERROR0typedefintStatus;//定义int类型的同义名statustypedefintElemType;typedefElemType*Triplet;//由InitTriplet分配3个元素存储空间StatusInitTriplet(Triplet*T,ElemTypev1,ElemTy
2、pev2,ElemTypev3){(*T)=(ElemType*)malloc(3*sizeof(ElemType));//分配3个元素的存储空间if(!*T)exit(OVERFLOW);//分配存储空间失败(*T)[0]=v1,(*T)[1]=v2,(*T)[2]=v3;returnOK;}StatusDestroyTriplet(Triplet*T)//销毁三元组{free(*T);*T=NULL;returnOK;}StatusGet(TripletT,inti,ElemType*e)//用e返回第i元的值{if(i<1
3、
4、i>3)returnERROR;*e=T[i-1];retu
5、rnOK;}StatusPut(TripletT,inti,ElemTypee){if(i<1
6、
7、i>3)returnERROR;T[i-1]=e;//returnOK;}StatusIsAscending(TripletT)//按升序排列则返回1{return(T[0]<=T[1]&&T[1]<=T[2]);}StatusIsDescending(TripletT)//按降序排列则返回1{return(T[0]>=T[1]&&T[1]>=T[2]);}StatusMax(TripletT,ElemType*e)//用e返回指向T的最大元素的值{*e=T[0]>=T[1]?T[0]>=T[2
8、]?T[0]:T[2]:T[1]>=T[2]?T[1]:T[2];returnOK;}StatusMin(TripletT,ElemType*e)//用e返回指向T的最小元素的值{*e=T[0]<=T[1]?T[0]<=T[2]?T[0]:T[2]:T[1]<=T[2]?T[1]:T[2];returnOK;}voidmain(){TripletT;ElemTypem;Statusi;i=InitTriplet(&T,5,7,9);printf("调用初始化函数后,i=%d(1:成功)T的三个值为:%d%d%d",i,T[0],T[1],T[2]);i=Get(T,2,&m);if(i=
9、=OK)printf("T的第2个值为:%d",m);i=Put(T,2,6);if(i==OK)printf("将T的第2个值改为6后,T的三个值为:%d%d%d",T[0],T[1],T[2]);i=IsAscending(T);printf("调用测试升序的函数后,i=%d(0:否1:是)",i);i=IsDescending(T);printf("调用测试降序的函数后,i=%d(0:否1:是)",i);if((i=Max(T,&m))==OK)printf("T中的最大值为:%d",m);if((i=Min(T,&m))==OK)printf("T中的最小值为:%
10、d",m);DestroyTriplet(&T);printf("销毁T后,T=%u(NULL)",T);}