Data_Structure01-绪论作业
一.作业题目
仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算:
- 构造有理数T,元素e1,e2分别被赋以分子、分母值
- 销毁有理数T
- 用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。
- 将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
- 有理数T1,T2相加,结果存入有理数T3
- 有理数T1,T2相减,结果存入有理数T3
- 有理数T1,T2相乘,结果存入有理数T3
二.作业内容
1.虚拟数据类型
ADT Rational{
数据对象:
D={e1,e2|e1,e2均为整数}
数据关系:
R={<e1,e2>|e1是有理数的分子部分,e2是有理数的分母部分,且e2不等于0}
基本运算:
AssignRational(&T,v1,v2)
操作结果:构造有理数T,其分子和分母分别赋以参数v1和v2的值
DestoryRational(&T)
操作结果:销毁有理数T
Get(&T,i,e)
操作结果:返回有理数T的分子或分母,当入参i为1时返回分子,入参i为2时返回分母
Change(&T,i,e)
操作结果:将有理数T的分子或分母更改为e,当入参i为1时改变分子,入参i为2时改变分母
Add(T1,T2,&T3)
操作结果:有理数T1与T2相加,得T3为有理数之和
Subtract(T1,T2,&T3)
操作结果: 有理数T1与T2相减,得T3为有理数之差
Multiply(T1,T2,&T3)
操作结果: 有理数T1与T2相乘,得T3为有理数之积
Divide(T1,T2,&T3)
操作结果: 有理数T1与T2相除,得T3为有理数之商
}ADT Rational
2.数据结构、函数说明
头文件:
函数:
3.代码实现说明:
e1,e2是T1的分子分母;e3,e4是T2的分子分母;fenzi,fenmu是T3的分子分母。
(1) 有理数相加
(2) 有理数相减
(3) 有理数相乘
(4) 有理数相除
(5)查找公因数
(7)输出函数
4.结果展示:
(1) T1=T2
(2)T1<T2
(3)T1>T2
(4)分子为零
(5)分母为零
5.总结
(1)抽象数据类型:不考虑计算机的具体存储结构和具体算法,抽象数据类型的特征是实现与操作分离,从而实现封装。
另外抽象数据类型的构建,使我们的思路更加清晰,在代码的实现过程中不至于手忙脚乱。
(2)数据结构:按照某种逻辑关系组织起来的一批数据,用一定的存储方式存储在计算机的存储器中,并在这些数据上定义一个运算的集合,就成为一个数据结构。数据结构分为逻辑结构和存储结构。虽然两者有所不同,但其最终目的都是为了找到问题的解决方法。