Data_Structure01--绪论作业
一.作业题目
仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算:
- 构造有理数T,元素e1,e2分别被赋以分子、分母值
- 销毁有理数T
- 用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。
- 将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
- 有理数T1,T2相加,结果存入有理数T3
- 有理数T1,T2相减,结果存入有理数T3
- 有理数T1,T2相乘,结果存入有理数T3
- 有理数T1,T2相除,结果存入有理数T3
二.作业内容
1.抽象数据结构描述
ADT Rational{
数据结构:
D={e1,e2|e1,e2为整数}
数据关系:
R={<e1,e2>|e1为有理数的分子,e2为有理数的分母,e2不能为0}
基本操作:typedef ElemType *Rational;
//操作结果:分配两个存储空间
int IntRetional(Rational &T,ElemType R1,ElemType R2);
//操作结果:构建一个三元组T,把R1,R2的值赋给e1,e2
int Destory(Rational &T);
//操作结果:销毁三元组
int Get(Rational &T,int i,ElemType &e);
//操作结果:用e返回T第i元的值
int Change(Rational &T,int i,ElemType &e);
//操作结果:改变T第i元的值
int Add(Rational &T1,Rational &T2,Rational &T3);
//操作结果:T1+T2=T3
int Sub(Rational &T1,Rational &T2, Rational &T3);
//操作结果:T1-T2=T3
int Mul(Rational &T1,Rational &T2, Rational &T3);
//操作结果:T1*T2=T3
int Div(Rational &T1,Rational &T2, Rational &T3);
//操作结果:T1/T2=T3
int gcd(int a,int b);
//操作结果:求e1,e2的最大公约数}ADT Rational
2.数据结构与函数代码说明
1.头文件
2.函数
3.函数说明
1.构建三元组和销毁
2.返回分子分母的值
3.更改分子分母的值
4.加法
5.减法
6.乘法
7.除法
8.约分
3.代码测试
4.感想:
此次作业让我初步了解了数据结构,通过老师同学的帮助也成功的完成了此次作业,同时我也了解到了抽象数据类型的定义:一个数学模型以及定义在该模型上的一组操作。还有数据结构是计算机存储、组织数据的方式。数据结构是相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。