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

本文介绍了一种抽象数据类型ADTRational的设计与实现,包括构造、销毁有理数及基本运算如加减乘除等,并对比了两种不同的实现方式。

一.作业题目

1.作业内容

ADT Rational{
    数据对象:D={e1,e2,e3,e4|e1,e2,e3,e4属于ElemType类型}
    数据关系:R1={<e1,e2>,<e3,e4>}
    基本操作:
        InitRational(&T,v1,v2); //构造有理数T
        DestoryRational(&T) //销毁有理数
        Get(T,i,&e) //返还分子或分母的值给e
        Put(&T,i,e) //修改分子或分母的值为e
        Add(T1,T2,&T3)  //T1 T2相加,结果存入T3 
        Sub(T1,T2,&T3)  //T1 T2相减,结果存入T3
        Mul(T1,T2,&T3)  //T1 T2相乘,结果存入T3
        Div(T1,T2,&T3)  //T1 T2相除,结果存入T3
} ADT Rational

2.数据结构、函数说明

头文件Rational.h
1232091-20180307152645812-1476658111.png

3.代码实现说明

1.构造有理数T,元素e1,e2分别被赋以分子、分母值
1232091-20180307160452335-118780858.png
做法:动态申请空间,将两个变量放入数组T中

2.销毁有理数T
1232091-20180307155400931-567487046.png

3.用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。
1232091-20180307155414478-113488823.png
做法:形参中e前用&,直接在函数中修改e的值

4.将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
1232091-20180307155443646-822388655.png
做法:形参中有理数T前用&,直接在函数中修改有理数T的值

5.有理数T1,T2相加,结果存入有理数T3
1232091-20180307155500080-529277247.png
做法:形参中有理数T3前用&,在函数中修改T3的值,先直接两分母通分相加,再约分。减法、乘法、除法做法与加法类似。

6.有理数T1,T2相减,结果存入有理数T3
1232091-20180307155510513-1515341932.png

7.有理数T1,T2相乘,结果存入有理数T3
1232091-20180307155535609-1197220958.png

8.有理数T1,T2相除,结果存入有理数T3
1232091-20180307155546104-2093270241.png

9.约分函数:
1232091-20180307155600949-1531419816.png

4.代码互评

互评同学:朱杰伟
我的代码截图:
1232091-20180308172857145-1033200711.png
1232091-20180308172918440-1094362836.png

朱杰伟代码截图:
1232091-20180308172939849-1168477930.png
1232091-20180308173024656-1286818800.png

不同点:杰伟在构造有理数时,用了结构体,他构造时直接传了结构体指针参数,而我将两个整形变量传过去。在进行加减乘除运算时,我用了&T3,杰伟将T3定义为指针直接传参;约分时,我直接在函数里取绝对值,而杰伟讨论了正负号;我的输出写在main函数里,杰伟的输出写在功能函数里,而且杰伟对结果的输出分类的更到位。

5.结果展示

正常测试数据
1232091-20180307160624559-2014072495.png

错误提示:
1232091-20180307161114423-72565953.png

6.总结

  • 百度百科:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
  • 抽象数据类型是自定义的数据类型,就像整形、浮点型一样,它可以包含多个相同或不同的数据类型,比如一个人的信息,包含名字、性别、出生地、生日之类,将这些分装在一个抽象数据类型里就能直接进行使用,操作起来更加方便。

转载于:https://www.cnblogs.com/xzjj/p/8523069.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值