数据结构(C语言)全程更新第一版震撼来袭
三元组的使用
最近在学习严蔚敏编著的数据结构(C语言版)发现很多人对数据结构这么科目的掌握很费劲,数据结构作为一种重要的思想对我们整个编程生涯会产生不小的影响,因此笔者在进行了一段时间的学习后,决定将自己的学习心得和代码分享出来,以供更多的读者来学习。因为笔者主要从事安卓的开发,因此对于安卓和Java开源的精神所深深的打动,知识是用来共享的,经验是用来共同进步的。希望读者们在看完之后能对自己的数据结构有一定的帮助
这是第一个示例,会在过年前更新完每章最基础最常用的示例代码,希望大家广泛传播和学习。
/*设计实现抽象数据类型三元组 (Triplet) 。
每个三元组由任意三个实数的序列构成,基本操作包括:
创建一个三元组,取三元组的任意一个分量,置三元组
的任意一个分量,求三元组的最大分量、最小分量,
显示三元组,销毁三元组等。
方法1:用结构体封装需要定义的数据类型,如定义三元组ADT时,
首先用结构体封装“三元组”的三个分量。
并利用typedef对结构体重新命名。
*/
#include //引入库
#include //引入库
typedef int Status; //给int型起个别名为status
typedef float ElemType; //给float型起个别名为ElemType//建立一个结构体,起名为Triplet
typedef struct{ElemType e[3];
}Triplet;//构造一个三元组,元素e1,e2,e3分别被赋以参数v1,v2,.v3的值
Status InitTriplet(Triplet &T,Status v1,Status v2,Status v3)
{T.e[0]=v1; //赋值T.e[1]=v2; //赋值T.e[2]=v3; //赋值return 0;
}//打印三元组
Status printElem(Triplet T)
{printf("三元组为:\n");printf("%f,%f,%f",T.e[0],T.e[1],T.e[2]);printf("\n");
}//取出三元组中第i个元素的值
Status GetElem(Triplet T,Status i,ElemType &e)
{printf("请输入你想打印的三元组中的第几个元素的值:\n");scanf("%d",&i);switch(i){case 1:printf("三元组的第一个数=%f",T.e[i-1]);break;case 2:printf("三元组的第二个数=%f",T.e[i-1]);break;case 3:printf("三元组的第三个数=%f",T.e[i-1]);break;}
}//获取三元组中的最大值
Status getMax(Triplet T,ElemType &e)
{if(T.e[0]>T.e[1]){e=T.e[0];}else{e=T.e[1];}if(T.e[2]>e){e=T.e[2];}return e;
}//获取三元组中的最小值
Status getMin(Triplet T,ElemType &e)
{if(T.e[0]3){ //加入if语句 用来判断i是不是在1-3内 用来增强代码的健壮性return 0;}T.e[i-1]=e; //对第i的元素赋值eprintf("改变后的新的三元组的值为:");printElem(T);return 0;
}//三元组T被销毁
Status DestoryTriplet(Triplet &T){return 1;
}Status main()
{Status v0,v1,v2;Status i;ElemType e;Triplet T;printf("请给三元组赋值v0,v1,v2(每个数用逗号个隔开):\n");scanf("%d,%d,%d",&v0,&v1,&v2);InitTriplet(T,v0,v1,v2); //InitTriplet(&T,v0,v1,v2); //建立三元组并赋值printElem(T); //打印三元组GetElem(T,i,e); //GetElem(T,i,&e); //取出三元组中第i个元素的值printf("\n");printf("三元组最大值为:%d",getMax(T,e));//printf("三元组最大值为:%f",getMax(T,&e)); //获取三元组中的最大值printf("\n");printf("三元组最小值为:%d",getMin(T,e));//printf("三元组最小值为:%f",getMin(T,&e)); //获取三元组的最小值printf("\n");PutElem(T,i,e); //PutElem(&T,i,e); //改变三元组中的第i元的值为eDestoryTriplet(T); //DestoryTriplet(&T); //三元组T被销毁system("pause");return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
