一、作业题目

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

    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

二、实验

1.用ADT的抽象数据模型描述你的有理数数据类型。

ADT Rational {
数据对象:D = { e1,e2 | e1,e2均为整且e2部位0}
数据关系:R = { <e1,e2> }
基本操作:int PlusRational(int T1[],int T2[],int T3[]);
操作结果:有理数T1,T2相加,结果存入有理数T3
int MinusRational(int T1[],int T2[],int T3[]);
操作结果:有理数T1,T2相减,结果存入有理数T3
int MultiplyRational(int T1[],int T2[],int T3[]);
操作结果:有理数T1,T2相乘,结果存入有理数T3
int DivideRational(int T1[],int T2[],int T3[]);
操作结果:有理数T1,T2相除,结果存入有理数T3
int SimplifyRational(int T3[]);
操作结果:将有理数约分并输出结果
}ADT Rational

2.数据结构、函数说明

3.代码实现说明

(1)构造有理数函数

(2)销毁有理数函数

(3)返回有理数的分子或分母函数

(4)改变有理数分子或分母元素

(5)求两个有理数相加结果函数

(6)求两个有理数相减结果函数

(7)求两个有理数相乘结果函数

(8)求两个有理数相除结果函数

(9)将有理数约分函数

4.结果展示

(1)非法数据

(2)两个有理数分子均为零

(3)有一个有理数分子为零

(4)题例

(5)两个有理数均为负数

(6)两个有理数一正一负

5.总结

数据结构包括数据对象和数据对象之间的联系

数据结构可以带来更高的运行或者存储效率

已有的数据类型不足以解决实际问题,比如题中对有理数进行的四则运算,就需要定义抽象数据类型

抽象数据类型是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过已有的数据类型来实现。抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。

week01—绪论的更多相关文章

  1. TMS320C54x系列DSP的CPU与外设——第1章 绪论

    第1章 绪论 TMS320C54x DSP是TMS320系列DSP产品中的定点数字信号处理器.C54x DSP满足了实时嵌入式应用的一些要求,例如通信方面的应用. C54x的中央处理单元(CPU)具有 ...

  2. 翻译学python---《Learn Python the hard Way》---第一章 绪论

    打算学习python,但是又不想单纯地看书或是写个小项目,干脆引入很流行的翻译学习法来学习吧-         在论坛上看到了国外的一本<Learn Python the hard Way> ...

  3. 数据结构与算法(C/C++版)【绪论/线性表】

    声明:数据结构与算法系列博文参考了<天勤高分笔记>.<王道复习指导>.C语言中文网.非商业用途,仅为学习笔记总结! 第一章<绪论> 一.基本概念及入门常识  /// ...

  4. 数字图像处理的Matlab实现(1)—绪论

    第1章 绪论 1.1 什么是数字图像处理 一幅图像可以定义为一个二维函数\(f(x,y)\),这里的\(x\)和\(y\)是空间坐标,而在任意坐标\((x,y)\)处的幅度\(f\)被称为这一坐标位置 ...

  5. Data01-数据结构和算法绪论

    Data01-数据结构和算法绪论 一.数据结构和算法绪论 1.1 什么是数据结构? 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科. 程序设计=数据结 ...

  6. Chapter 1(数据结构绪论)

    附件列表 数据结构绪论.jpg

  7. 编译原理(一)绪论概念&文法与语言

    绪论概念&文法与语言 以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记. 绪论基本概念 1. 低级语言:字位码.机器语言.汇编语言.与特定的机器有关,功效高,但使用复杂.繁琐.费时 ...

  8. 【读书笔记】周志华《机器学习》第三版课后习题讨<第一章-绪论>

    虽然是绪论..但是...真的有点难!不管怎么说,一点点前进吧... 声明一下答案不一定正确,仅供参考,为本人的作答,希望大神们能多多指教~ 1.1 表1.1中若只包含编号为1和4的两个样例,试给出相应 ...

  9. 数字图像处理学习笔记之一 DIP绪论与MATLAB基础

    写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...

随机推荐

  1. PAT1054. The Dominant Color (20)

    #include <iostream> #include <map> using namespace std; int n,m; map<int,int> imgM ...

  2. JDBC插入性能优化对比

    今天对Insert进行了性能测试,结果反差很大,平时都是单条插入,虽然性能要求没有那么高,但是突然在项目中,人家给定时间内完成,这就尴尬了. 优化数据库,优化服务器,优化代码,反正通过各种优化提高数据 ...

  3. lightoj1138

    二分 #include<map> #include<set> #include<cmath> #include<queue> #include<s ...

  4. 51nod 1639 递推

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1639 1639 绑鞋带 基准时间限制:1 秒 空间限制:131072 K ...

  5. vue如何循环同一个echarts图表

    因为我们知道echarts图表需要一个ID节点,所以我们循环echarts同一个图表时要考虑ID节点变化问题.废话不多说,直接上demo效果. 这里有一位分析师在不同的模拟组合,这时需求要在dialo ...

  6. 关于vsftpd.conf配置

    vsftpd配置文件详解   转自http://yuanbin.blog.51cto.com/363003/108262/   1.默认配置: 1>允许匿名用户和本地用户登陆.      ano ...

  7. Redis补充

    Redis补充 (1)redis基本概念 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set ...

  8. Python探索记(18)——文件File

    # @Time : 2017/7/8 21:10 # @Author : 原创作者:谷哥的小弟 # @Site : 博客地址:http://blog.csdn.net/lfdfhl # @DESC : ...

  9. Android快速开发-选项卡

    介绍 几行代码实现Android选项卡界面,支持标准底部Tab自定义视图选项卡,头部文字选项卡. 底部自定义视图选项卡 先来看看实现下图中的效果我们代码应该怎么写? 实现上图效果只需以下代码: pub ...

  10. 4.CRT远程连接的使用

    目录: 1.为什么需要远程连接? 2.一般的远程连接工具有哪些? 3.远程连接的原理? 4.远程连接的软件的功能和使用相关技巧? 1.为什么选择远程连接? 因为在实际工作中,机房一般都不可能在办公室, ...