1.作业内容
用ADT的抽象数据模型描述你的有理数数据类型:
ADT Rational{
数据对象:D={v1,v2|v1,v2属于ElemType类型}
数据关系:R1={<v1,v2>}
基本操作:
InitRational(&T,v1,v2)
DestroyRational(&T)
Get(T,i,&e)
Put(&T,i,e)
Add(&T,T1,T2)
Subtraction(&T,T1,T2)
Multiplication(&T,T1,T2)
Division(&T,T1,T2)
Simplification(&T)
}ADT Rational
2.数据结构、函数说明
3.代码实现说明
(1)构造三元组函数
做法:动态申请内存,分别把2个变量放入数组T中。
(2)销毁有理数T
做法:通过free释放内存
(3)输出分母或分子函数
做法:用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母
(4)修改数据
做法:将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
(5)加法运算
做法:有理数T1,T2相加,把结果存入T中
(6)减法运算
做法:有理数T1,T2相减,把结果存入T中
(7)乘法运算
做法:有理数T1,T2相乘,把结果存入T中
(8)除法运算
做法:有理数T1,T2相除,把结果存入T中
4.代码互评
这是化简分数的函数,我用的方法是直接用循环找出可以同时被两者整除的数,然后再一步一步的化简,感觉比较复杂,效率比较低;相对于我的代码来说,李金谣的代码通过先求出最大公约数,然后化简,效率比较高,也比较直观,我更喜欢李金谣的代码。
5.结果展示
6.总结
- 数据结构就是指按一定的逻辑结构组成的一批数据,使用某种存储结构将这批数据存储于计算机中,并在这些数据上定义了一个运算集合,数据结构首先应该包含数据对象在计算机中的组织方式,而数据对象必定与一系列加在数据对象上的操作相关联。
- 抽象数据类型是一种对于数据类型的描述,是指描述数据类型的方法是不依赖于具体实现的,换而言之,抽象数据类型只描述数据对象集和相关操作集“是什么”,并不涉及“如何做到”的问题。