- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三元组类型定义与实现
【例1-5】抽象数据类型三元组的表示与实现
// 抽象数据类型三元组Triplet的定义
ADT Triplet { 数据对象:D = {e1,e2 ,e3| e1,e2 ,e3∈ElemType}
数据关系:R1 = {e1,e2,e1,e3 }
基本操作: InitTriplet(T,v1,v2,v3)
操作结果: 构造三元组T,依次置T的三个元素e1,e2 ,e3的初值为v1,v2和v3
DestroyTriplet(T)
操作结果:三元组T被销毁
Get(T,i,e)
初始条件:三元组T已存在,1≤i≤3。
操作结果:用e返回T的第i元的值
Put(T,i,e)
初始条件:三元组T已存在,1≤i≤3。
操作结果:改变T的第i元的值为e
IsAscending(T)
初始条件:三元组T已存在。
操作结果:如果T的三个元素按升序排列,返回1,否则返回0
IsDescending(T)
初始条件:三元组T已存在。
操作结果:如果T的三个元素按降序排列,返回1,否则返回0
Max(T,e)
初始条件:三元组T已存在。
操作结果:用e返回T的三个元素中的最大值
Min(T,e)
初始条件:三元组T已存在。
} ADT Triplet
// 定义存储结构
// 采用动态分配的顺序存储结构,由InitTriplet分配三个元素存储空间,Triplet类型是// ElemType类型的指针,存放 ElemType类型的地址
typedef ElemType *Triplet;
// 以下为vc++6.0环境下运行,可使用引用参数
// 定义基本操作的函数原型(8个基本操作)
Status InitTriplet(Triplet T,ElemType v1,ElemType v2,ElemType v3)
Status DestroyTriplet(Triplet T)
Status Get(Triplet T,int i, ElemType e)
Status Put(Triplet T,int i,ElemType e)
Status IsAscending(Triplet T)
Status IsDescending(Triplet T)
Status Max(Triplet T,ElemType e)
Status Min(Triplet T,ElemType e)
// 实现函数原型的8个基本操作 Triplet.cpp
Status InitTriplet(Triplet T,ElemType v1,ElemType v2,ElemType v3)
{ // 操作结果:构造三元组T,依次置T的三个元素的初值为v1,v2和v3
if(!(T=(ElemType *)malloc(3*sizeof(ElemType))))
exit(OVERFLOW);
T[0]=v1,T[1]=v2,T[2]=v3;
return OK;
}
Status DestroyTriplet(Triplet T)
{ // 操作结果:三元组T被销毁
free(T);
T=NULL;
return OK;
}
Status Get(Triplet T,int i, ElemType e)
{ // 初始条件:三元组T已存在,1≤i≤3。操作结果:用e返回T的第i元的值
if(i1||i3)
return ERROR;
e=T[i-1];
return OK;
}
Status Put(Triplet T,int i,ElemType e)
{ // 初始条件:三元组T已存在,1≤i≤3。操作结果:改变T的第i元的值为e
if(i1||i3)
return ERROR;
T[i-1]=e;
return OK;
}
Status IsAscending(Triplet T)
{//初始条件:三元组T已存在。操作结果:若T中的元素按升序排列返回1,否则返回0
return(T[0]=T[1]T[1]=T[2]);
}
Status IsDescending(Triplet T)
{//初始条件:三元组T已存在。操作结果:若T中的元素按降序排列,返回1,否则返回0
return(T[0]=T[1]T[1]=T[2]);
}
Status Max(Triplet T,ElemType e)
{ // 初
文档评论(0)