博客作业01-抽象数据类型

一.作业题目

实验题目

试仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算如下所示:
•1.构造有理数T,元素e1,e2分别被赋以分子、分母值
•2.销毁有理数T
•3.用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。
•4.将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
•5.有理数T1,T2相加,结果存入有理数T3
•6.有理数T1,T2相减,结果存入有理数T3
•7.有理数T1,T2相乘,结果存入有理数T3
•8.有理数T1,T2相除,结果存入有理数T3

二、博客作业要求

1.作业内容

用ADT的抽象数据模型描述你的有理数数据类型:

ADT Rational{
    数据对象:
                     D={e2,e2|e1,e2属于ElemType类型}

    数据关系:
                     R1={<e1,e2>}    R2={<T1,T2>,<T2,T3>}

    基本运算: 
                    InitTriplet(Rational &T, ElemType v1, ElemType v2);  
                     //操作结果:构造了有理数T,分子分母e1,e2的值分别被赋以参数v1,v2的值。

                    DestroyRational(Rational &T);  
                    //操作结果:有理数T被销毁。

                    Get(Rational T, int i, ElemType &e);  
                    //操作结果:用e返回分子或分母的值 ,i为1是返回分子,i为2时返回分母  

                    Put(Rational &T, int i, ElemType e);    
                    //操作结果:改变分子或分母的值为e,i为1时改变分子,i为2时改变分母 

                    AddRational(Rational &T1,Rational &T2,Rational &T3);    
                    //操作结果:将T1,T2相加,结果存入T3 

                   SubRational(Rational &T1,Rational &T2,Rational &T3);    
                    //操作结果:将T1,T2相减,结果存入T3

                   MulRational(Rational &T1,Rational &T2,Rational &T3);  
                    //操作结果:将T1,T2相乘,结果存入T3

                   DivRational(Rational &T1,Rational &T2,Rational &T3); 
                   //操作结果:将T1,T2相除,结果存入T3  
               }ADT Rational

2.数据结构、函数说明

头文件:

函数:

3.代码实现说明

(1)构造有理数T:

(2)销毁有理数

(3)返回分子分母的值

(4)改变分子分母的值

(5)有理数相加

(6)有理数相减

(7)有理数相乘

(8)有理数相除

(9)求最大公约数

5.结果展示

6.总结

数据结构用来反应一个数据的内部构成,任何程序都包含一定的数据结构,好的数据结构可以是程序设计更容易,运行效率更高

“抽象数据类型”本质是“数据类型”,与计算机相关,涉及数据的存储及如何用存储来反应数据元素之间的关系。它定义为一个三元组(D,S,P),加上的P是定义的一组针对存储的数据操作(如插入,删除,排序等)

posted @ 2018-03-08 22:54  琼楼玉女  阅读(199)  评论(2编辑  收藏  举报