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

 


 二.作业内容

 

1.虚拟数据类型

ADT Rational{

数据对象:

D={e1,e2|e1,e2均为整数}

数据关系:

R={<e1,e2>|e1是有理数的分子部分,e2是有理数的分母部分,e2不等于0}

基本运算:

AssignRational(&T,v1,v2)

操作结果:构造有理数T,其分子和分母分别赋以参数v1v2的值

DestoryRational(&T)

操作结果:销毁有理数T

Get(&T,i,e)

 操作结果:返回有理数T的分子或分母,当入参i1时返回分子,入参i2时返回分母

Change(&T,i,e)

操作结果:将有理数T的分子或分母更改为e,当入参i1时改变分子,入参i2时改变分母

Add(T1,T2,&T3)

操作结果:有理数T1T2相加,得T3为有理数之和

Subtract(T1,T2,&T3)

操作结果: 有理数T1T2相减,得T3为有理数之差

Multiply(T1,T2,&T3)

操作结果: 有理数T1T2相乘,得T3为有理数之积

Divide(T1,T2,&T3)

操作结果: 有理数T1T2相除,得T3为有理数之商

}ADT Rational

2.数据结构、函数说明

头文件:

 函数:

3.代码实现说明

e1,e2是T1的分子分母;e3,e4是T2的分子分母;fenzi,fenmu是T3的分子分母。

(1) 有理数相加

    

(2) 有理数相减

(3) 有理数相乘

(4) 有理数相除

 

(5)查找公因数

(7)输出函数

4.结果展示:

(1) T1=T2

 

(2)T1<T2

 

 (3)T1>T2

(4)分子为零

(5)分母为零

5.总结

(1)抽象数据类型:不考虑计算机的具体存储结构和具体算法,抽象数据类型的特征是实现与操作分离,从而实现封装。

另外抽象数据类型的构建,使我们的思路更加清晰,在代码的实现过程中不至于手忙脚乱。

(2)数据结构:按照某种逻辑关系组织起来的一批数据,用一定的存储方式存储在计算机的存储器中,并在这些数据上定义一个运算的集合,就成为一个数据结构。数据结构分为逻辑结构和存储结构。虽然两者有所不同,但其最终目的都是为了找到问题的解决方法。

 

posted @ 2018-03-04 18:31  l瑜梓绛  阅读(233)  评论(1编辑  收藏  举报