首页 > Sentiment > 实验二  抽象数据类型的表示和实现

实验二  抽象数据类型的表示和实现

2008年3月6日 发表评论 阅读评论 485 views

test_main.cpp

# include // 包含输入(cin)、输出(cout)的头文件,
# include //若采用printf和scanf,则用stdio.h库函数
# include //常用函数的头文件
typedef int ElemType; // 定义三元组元素类型ElemType为整型
typedef ElemType *Triplet; //定义动态分配的三元组类型, 指针Triplet
//指向ElemType类型元素的地址。初始化操作分配3个元素的存储空间
# include “test2_function.h” // 包含三元组基本操作的头文件
void main()
{
Triplet T; // _定义T为Triplet类型的变量
ElemType m;
int i;
i=InitTriplet(T, 1, 3, 5); //__调用InitTriplet函数初始化即构造三元组T,并赋三个初值为1 3 5
printf(“调用初始化函数后,i=%d (1:成功;否则:不成功) “, i);
printf(“\n三元组中三个元素的值分别为:\n”);
printf(“T[0]=%d, T[1]=%d, T[2]=%d”, T[0], T[1], T[2]);
if(IsAscending(T)) //调用IsAscending()函数判断三元组中元素是否为升序排列
printf(“\nT中三个元素按升序排列”);
if(IsDecending(T)) //调用IsDecending()函数判断三元组中元素是否为升序排列
printf(“\nT中三个元素按降序排列”);
i=Get(T, 2, m); // 调用Get()将T的第2元的值赋值给m
if (i==1) // 调用Get() 成功
printf(“\nT的第2个值为:%d”, m) ;
i=Put(T, 2, 6); // _调用Put()改变T的第2元的值为6
if (i==1) // 调用Put() 成功
printf(“\n改变后T的3个值为:%d, %d, %d”, T[0], T[1], T[2]) ;
Max(T, m); // _调用Max()返回T中的最大值并赋值给m
printf(“\nT中的最大值为:%d”, m) ;
Min(T, m);
printf(“\nT中的最小值为:%d”, m);
DestroyTriplet(T); //_调用DestroyTriplet()销毁T
printf(“\n销毁T后,T=%d\n”, T);
}

test2_function.h

int InitTriplet(Triplet &T, ElemType v1, ElemType v2, ElemType v3)
{ // 操作结果:构造三元组T,依次置T的3个元素的初值为v1,v2和v3
// (见图2.3) ,经过此操作,系统将分配给三元组T一个起始地址
if (!(T=(ElemType *) malloc (3*sizeof(ElemType))))
exit(0); // 申请空间失败,退出系统
T[0]=v1; T[1]=v2; T[2]=v3;
return 1; // 若返回值为1,则初始化成功
}
void DestroyTriplet(Triplet &T)
{ // 操作结果:三元组T被销毁
free(T);
T=NULL;
return;
}
int Get(Triplet T,int i,ElemType &e)
{
if(T!=NULL&&(i>=1&&i<=3)){
e=T[i-1];
return 1;
}
else
exit(0);
}
int IsAscending(Triplet T)
{
if(T!=NULL&&(T[0]<=T[1]&&T[1]<=T[2]))
return 1;
else
return 0;
}
int IsDecending(Triplet T)
{
if(T!=NULL&&(T[0]>=T[1]&&T[1]>=T[2]))
return 1;
else
return 0;
}
int Put(Triplet &T,int i,ElemType e)
{
if(T!=NULL&&(i>=1&&i<=3)){
T[i-1]=e;
return 1;
}
else
exit(0);
}
void Max(Triplet T,ElemType &e)
{
int i;
if(T!=NULL){
e=T[0];
for(i=1;i<3;i++)
if(e e=T[i];
}
else
exit(0);
}
void Min(Triplet T,ElemType &e)
{
int i;
if(T!=NULL){
e=T[0];
for(i=1;i<3;i++)
if(e>T[i])
e=T[i];
}
else
exit(0);
}

[sfile]http://imtimmy.com/wp-content/boblog/attachment/200803/1204772767_4433698a.rar[/sfile]

分类: Sentiment 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :cool: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O