数据结构(一) 抽象数据类型的表示与实现 代码示例
来源:互联网 发布:淘宝整点秒杀怎么设置 编辑:程序博客网 时间:2024/05/01 04:45
抽象数据类型三元组Triplet的表示和实现
//-------------------------采用动态分配的顺序存储结构----------------------------------
#defined OVERFLOW 0;
#defined OK 1;
#defined ERROR 1;
typedef ElemType *Triplet;
//-------------------------基本操作的函数原型说明-----------------------------------------
Status InitTriplet(Triplet &T, ElemType v1,ElemType v1, ElemType v1); //初始条件:三个ElemType 类型的元素操作结果:构造一个ElemType 类型的三元组
Status DestroyTriplet (Triplet &T);//初始条件:三元组存在 操作结果:三元组被销毁
Status Get(Triplet T,int i, ElemType &e); //初始条件:三元组存在操作结果:取出存在于第i个位置的元素
Status Put(Triplet &T,int i, ElemType e);//初始条件:三元组存在操作结果:在第i个位置存入值为e的元素
Status IsAscending(Triplet T);//初始条件:三元组存在操作结果:按升序排列
Status IsDescending(Triplet T);//初始条件:三元组存在操作结果:按降序排列
Status Max(Triplet T,ElemType &e);//初始条件:三元组存在操作结果:返回三元组中值最大的数
Status Min(Triplet T,ElemType &e);//初始条件:三元组存在操作结果:返回三元组中最小的数
//-----------------------基本操作的实现-------------------------------------------------------
//------------------------我的代码---------------------------------------------------------------
Status InitTriplet(Triplet&T, ElemType v1,ElemType v1, ElemType v1){
T=malloc(3*sizeof(ElemType));
T[1]=v1;
T[2]=v2;
T[3]=v3;
return T;
}
Status DestroyTriplet (Triplet&T){
free(T);
}
Status Get(Triplet T,int i, ElemType&e){
e=T[i-1];
return OK;
}
Status Put(Triplet &T,int i, ElemType e){
int k;
k=0;
if(i<1||i>4)
return ERROR;
for(k=i-1;k<4;k++)
{
T[k+1]=T[k];
}
T[i-1]=e;
return OK;
}
ps:
未考虑增加了一个内存空间,应该如何分配内存空间。是给T重新分配4个存储空间,还是再分配一个存储空间存T中第4个元素。
Status IsAscending(Triplet T){
int i;
i=0;
int *p;
for(i=0;i<3;i++)
{
p=T[I];
if(T[i]>T[i+1])
{
T[i]=[i+1];
T[i+1]=&p;
}
}
return OK;
}
Status IsDescending(Triplet T){
int i;
i=0;
int *p;
for(i=0;i<3;i++)
{
p=T[I];
if(T[i]<T[i+1])
{
T[i]=[i+1];
T[i+1]=&p;
}
}
return OK;
}
Status Max(Triplet T,ElemType &e){
int i;
i=0;
int *p;
p=0;
for(i=0;i<3;i++)
{
if(T[i]>&p)
{
p=T[I];
}
}
return OK;
Status Min(Triplet T,ElemType &e){
int i;
i=0;
int *p;
p=0;
for(i=0;i<3;i++)
{
if(T[i]<&p)
{
p=T[I];
}
}
return OK;
//------------------------------书上的代码-------------------------------------------------------
Status InitTriplet(Triplet &T, ElemType v1,ElemType v1, ElemType v1){
T=(ElemType *)malloc(3*sizeof(ElemType));
if(!T)
exit(OVERFLOW);
T[1]=v1;
T[2]=v2;
T[3]=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){
int k;
k=0;
if(i<1||i>3)
return ERROR;
for(k=i-1;k<4;k++)
{
T[k+1]=T[k];
}
T[i-1]=e;
return OK;
}
ps:
顺序存储的存储结构,存储大小不可变。当给数组中插入新的元素时,不用将挪动数组中的其他元素,只要覆盖掉想要插入位置的元素就好了。
Status ascending(Triplet T){}
Status descending(Triplet T){}
Status Max(Triplet T,ElemType &e){}
Status Min(Triplet T,ElemType &e){}
- 数据结构(一) 抽象数据类型的表示与实现 代码示例
- 数据结构(一) 抽象数据类型的表示与实现
- 数据结构教程 第二课 抽象数据类型的表示与实现
- 数据结构--抽象数据类型(ADT)的表示与实现
- 数据结构(严蔚敏)抽象数据类型Triplet的表示与实现(第一章)
- 数据结构(C语言版)第一章 抽象数据类型的表示与实现
- 抽象数据类型的表示与实现
- 抽象数据类型的表示与实现
- 抽象数据类型的表示与实现
- 抽象数据类型的表示与实现
- 抽象数据类型的表示与实现
- 抽象数据类型Triplet的表示与实现
- 1.3抽象数据类型的表示与实现
- 抽象数据类型的表示与实现
- 抽象数据类型的表示和实现方法
- 抽象数据类型Triplet的表示和实现
- 抽象数据类型Triplet的表示和实现
- 抽象数据类型Triplet的表示和实现
- Unity 的OCulus VR开发遇到的坑---OC版本差异
- 矩阵论笔记(四)——酉空间与酉变换
- jquery的$().each,$.each的区别
- Codeforces Round #404 (Div. 2)
- javac 与类名冲突
- 数据结构(一) 抽象数据类型的表示与实现 代码示例
- 邓仰东专栏|机器学习的那些事儿(二):机器学习简史
- sqoop使用手册
- 如何避免RecycleView复杂多条目布局时的加载不流畅
- poi读取Excel总结
- java 二分查找算法
- int const *p与int *const p区别
- 使用渲染纹理的制作摄像头
- java设计模式—分类