1.用ADT的抽象数据模型描述你的有理数数据类型
ADT Rational{
数据对象: D={v1,v2|都是ElemType类型}
数据关系: R={<v1,v2>}
基本操作:
InitRational(Rational &R,ElemType v1, ElemType v2);
huajian(Rational &R); //化简
DestroyRational(Rational &R);
add(Rational &R,Rational R1,Rational R2) ;
subtraction(Rational &R,Rational R1,Rational R2) ;
div(Rational &R,Rational R1,Rational R2) ;
mul(Rational &R,Rational R1,Rational R2) ;
print(Rational &R);//输出
Get(Rational R, int i, ElemType &e);//上下差别在于&为C++的语法,要改变的变量取别名
Status Put(Rational &R, int i, ElemType e);
}ADT Rational
2.数据结构、函数说明
(1)、构建有理数函数
(2)、有理数相加
(3)、有理数相减
(4)、有理数相乘
(5)、有理数相除
(6)、打印出有理数
(7)、化简有理数
(8)、用e输出分子或分母
(9)、用e修改分子分母
(10)、销毁有理数数组
3.结果展示
4.总结
- 在这次的数据结构的作业中,老师布置的作业与上学期的课设相同,都是要建立一个项目,虽然题目的难度不是很大,主要是分数的加减乘除,但是主要是练习我们的对于项目的熟练度。
- 还有就是对于数据的处理,编写定义有理数的数据类型,存储有理数。还有也找回了写程序的生疏感,为新学期做好准备。
5.代码互评
- 在和宏伟同学的代码互相评价后,我发现我和他主要的代码并没有太大的区别,因为主要的代码并不难,但是主要差别是我在输入输出的时候用的是C而他是用C++,我觉得不太熟练就没用,但是在看他的的代码后还是发现用C++代码比较简洁,还有就是他的代码注释也是很充分,这也是我要学习的地方,还有就是他在化简分数时使用的方法也和我的不一样,我觉得复杂度差不多但是也是一种新的思路。