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

二、博客作业要求:

1.作业内容

ADT Rational{
    数据对象:D={e1,e2,e3,e4|e1,e2,e3,e4属于ElemType类型}
    数据关系:R1={<e1,e2>,<e3,e4>}
    基本操作:
            InitRational( &T, v1, v2);
            DestroyRational( &T);
            Get( T,i,&e);
            Put( &T,i,e);
            Sum( T1, T2, &T3);
            Cha( T1, T2, &T3);
            Cheng( T1, T2, &T3);
            Chu( T1, T2, &T3);
            YueFen(&T);
}ADT Rational

2.数据结构、函数说明

  • (1)Common.h

  • (2)Rational.h

3.代码实现说明

  • (1)构造有理数T

     - 做法:动态申请内存,分别把4个变量放入数组T1,T2中。
    
  • (2)销毁有理数T

     - 做法:利用free(T)解放内存,达到销毁的目的
    
  • (3)通过e返回有理数的分子或分母

     - 做法:让e=有理数的分子或分母即可
    
  • (4)通过e修改有理数的分子或分母

     - 做法:让有理数的分子或分母=输入的e即可
    
  • (5)有理数T1,T2相加,结果存入有理数T3

     - 做法:分别算出分子'T1[0]*T2[1]+T2[0]*T1[1]'和分母'T1[1]*T2[1]'的值,存放于T3中,然后约分
    
  • (6)有理数T1,T2相减,结果存入有理数T3

     - 做法:分别算出分子'T1[0]*T2[1]-T2[0]*T1[1]'和分母'T1[1]*T2[1]'的值,存放于T3中,然后约分
    
  • (7)有理数T1,T2相乘,结果存入有理数T3

     - 做法:分别算出分子'T1[0]*T2[0]'和分母'T1[1]*T2[1]'的值,存放于T3中,然后约分
    
  • (8)有理数T1,T2相除,结果存入有理数T3

     - 做法:分别算出分子'T1[0]*T2[1]'和分母'T1[1]*T2[0]'的值,存放于T3中,然后约分(注意:如果T2为0,则除法运算不存在)
    
  • (9)约分

     - 做法:利用辗转相除法得出最简分式,如果遇到负数则现将其变为正数
    

4.代码互评

5.结果展示

  • (1)构造有理数

  • (2)返回e的值

  • (3)修改有理数的分子分母

  • (4)加减乘除的值

  • (5)如果分母为负数或0时

  • (6)返回输错了

  • (7)如果T2分子为零,除运算不存在

  • (8)当修改的参数e小于等于0时

6.总结

  • 数据结构:数据结构是我们计算机专业的基本课程之一。我们主要通过数据结构来学习用计算机实现数据组织和数据处理的方法。人们通过数据结构这门课学习来实现某些数据的链接和学习他们之间的关系。数据结构包括数据元素之间的关系、数据元素及其关系在计算机存储器中的储存方式、施加在数据上的操作。总的来说,我们必须认真学习这门课程。

  • 抽象数据类型:

    - (1)格式:
    
                ADT 抽象数据类型名{
                         数据对象:数据对象的声明
                         数据关系:数据关系的声明
                         基本运算:基本运算的声明
                }ADT 抽象数据类型名
    - (2)重要特征:数据抽象和 数据分装
    
    - (3)定义:是用户进行软件系统设计时从问题的数学模型中抽象出来的逻辑数据结构和逻辑数据结构上的运算,不考虑计算机的具体存储结构部和运算的具体实现算法。抽象数据类型可以让我们更好的通过逻辑顺序来实现代码上的运算,直观,简洁。
    
posted @ 2018-03-08 21:27  烦呢,还要起名字  阅读(167)  评论(4编辑  收藏  举报