博客作业1--抽象数据类型
一、作业题目
实验题目
试仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算如下所示:
1.构造有理数R,元素x1,x2分别被赋以分子、分母值
2.销毁有理数R
3.用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。
4.将有理数R的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
5.有理数R1,R2相加,结果存入有理数R3
6.有理数R1,R2相减,结果存入有理数R3
7.有理数R1,R2相乘,结果存入有理数R3
8.有理数R1,R2相除,结果存入有理数R3
实验要求
1.抽象数据类型名为Rational。
2.有理数分母不能为负数或者0,类似输入请提示重输入。
3.数据对象和数据运算的表示与数据操作的实现分离。表示用头文件完成,实现用CPP文件完成。Main.cpp文件实现数据输入输出。
二、博客作业要求
1.作业内容
用ADT的抽象数据模型描述你的有理数数据类型
ADT Rational{
数据对象:D={x1,x2|x1,x2都是Elemtype类型}
数据关系:R={<x1,x2>}
基本操作:
Status InitRational(Rational &R, ElemType x1, ElemType x2);//初始化有理数
Status DestroyRational(Rational &R);//销毁有理数
Status add(Rational &R1, Rational &R2, Rational &R3);//进行有理数加法
Status sub(Rational &R1, Rational &R2, Rational &R3);//进行有理数减法
Status mul(Rational &R1, Rational &R2, Rational &R3);//进行有理数乘法
Status div(Rational &R1, Rational &R2, Rational &R3);//进行有理数除法
int reduction(int a, int b);//进行约分
}ADT Rational
2.数据结构、函数说明
3.代码实现说明
4.代码互评
5.结果展示
6.总结
数据类型可以看作是带结构的数据元素的集合,他们直接存在某种特定的关系,如逻辑关系和运算操作
抽象数据类型是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过已有的数据类型来实现。抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。