Data-Structure01-绪论

 

一.作业题目

 

仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算:

 

    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
      实验要求:
    9. 抽象数据类型名为Rational。
    10. 有理数分母不能为负数或者0,类似输入请提示重输入。
    11. 数据对象和数据运算的表示与数据操作的实现分离。表示用头文件完成,实现用CPP文件完成。Main.cpp文件实现数据输入输出。
    12. 数据输入输出格式参考如下:
      输入:
      1 3 //T1的分子、分母
      1 2 //T2的分子、分母
      ** 输出:**
          5 6  //两个有理数相加
          -1 6  //两个有理数相减
           1 6  //两个有理数相乘
           2 3  //两个有理数相除
    13. 程序应对异常输入或者出错必要处理和提示,比如提示:“分数是否需要约分等”。

 

二.作业实验:                                      

1.用抽象数据类型写出有理数抽象数据类型的描述   

 

 ADT Rational{

    1. 数据对象:D = {R1,R2,R3|R1,R2,R3为有理数}
      数据关系:R = {<R1,R2>,<R2,R3>}
      基本操作:
      CreateRational(&R,b1,b2)
      操作结果:创造有理数R。
      DestoryRational(&R)
      操作结果:销毁有理数T。
      AddRational(&R1,&R2,&R3)
      操作结果:将R1,R2相加,结果存入R3
      MinusRationa(&R1,&R2,&R3)
      操作结果:将R1,R2相减,结果存入R3
      MultiplyRational(&R1,&R2,&R3)
      操作结果:将R1,R2相乘,结果存入R3
      DivideRational(&R1,&R2,&R3)
      操作结果:将R1,R2相除,结果存入R3
      } ADT Rational                                                                                                                                                                                                            

       

       

       2. 头文件 

    2.                                                                          

    3.  

         3.函数说明                                                                                                                   

    4. 4.代码实现

      (1)构造有理数                                                                                                                                                                                                        (2)销毁有理数                                                                                                                                                                                                                                                     (3)取得有理数的分子或分母的值                                                                                                                                                                                                                                                                                                                                    (4)改变有理数分子或分母的值                                                                                                                                                                                                                     (5)有理数相加                                                                                                                                                                                                                         (6)有理数相减                                                                                                                                                                                                                         (7)有理数相乘                                                                                                                                                                                                          (8)有理数相除                                                                                                                                                                                       (9)辗转相除求最大公约数                                                                                                                                                                                                                                                                               

      三、结果展示                                                                                                                        (1)普通情况                                                                                                                                                                                                                                  (2)两个有理数相同                                                                                                                                                                                                   (3)存在输入错误,需要重新输入的情况                                                                                                                                                                                                                    (4)有理数为负数                                                                                                                                                                                                                                       

    5. 四、总结

        通过这次作业,我对抽象数据类型和数据结构有了更深的了解。以下是我的理解:

        数据结构就是指按一定的逻辑结构组成的一批数据,使用某种存储结构将这批数据存储于计算机中,并在这些数据上定义了一个运算集合。

        抽象数据类型(abstract data type,ADT)只是一个数学模型以及定义在模型上的一组操作。通常是对数据的抽象,定义了数据的取值范围以及对数据操作的集合。一种数据类型可以看成是一种已经实现了的“数据结构”。

       

posted @ 2018-03-07 14:18  朱心溁  阅读(141)  评论(1编辑  收藏  举报