Data_Structure-绪论作业
一.作业题目
仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算:
- 构造有理数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}
基本操作:
Construct_rational_Numbers(&T,e1,e2)
//操做结果:构造有理数T,元素e1,e2分别被赋以分子、分母值
Destroy_rational_Numbers(&T)
//操做结果:销毁有理数T
Get(T,i,&e)
//操作结果:用e返回有理数T的分子或分母,i为1时返回分子, i为2是返回分母
Put(&T,i,e)
//操作结果:将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
add(T1,T2,&T3)
//操作结果:有理数T1,T2相加,结果存入有理数T3
subtract(T1,T2,&T3)
//操作结果:将T1,T2相减,结果存入T3
multiply(T1,T2,&T3)
//操作结果:将T1,T2相乘,结果存入T3
division(T1,T2,&T3)
//操作结果:将T1,T2相除,结果存入T3}ADT Rational
2.数据结构、函数说明
1.头文件

2.函数

3.代码实现说明
1.用e返回有理数T的分子或分母,i为1时返回分子, i为2是返回分母

2.将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母

3.有理数T1,T2相加,结果存入T3

4.将T1,T2相减,结果存入T3

5.将T1,T2相乘,结果存入T3

6.将T1,T2相除,结果存入T3

7.返回e1和e2的最大公约数

8.返回T3的值

4.结果展示
1.T1<T2
2.T1>T2

3.T1=T2

4.T1,T2都为负数

5.分母为零

6.分子为零

5.总结
本次作业让我初步认识到了抽象数据结构的构建和重点要素。抽象数据结构在编程的过程中,让我们更加明白程序所需要的元素和执行的操作。
数据结构是计算机存储、组织数据的方式。数据结构是相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。
抽象数据结构是不考虑计算机内部如何储存和具体算法的前提下,描述了数据的集合、数据之间的关系和操作的集合。(重点关心其的逻辑特征)
Data_Structure-绪论作业的更多相关文章
- DS博客作业01--日期抽象数据类型设计与实现
1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2 学习体会 这次博客园和大作业是我在编程学习中的有意义的进步,第一次尝试使用vs,并且通过同学的一些网站的推荐,和热心同学的帮忙,简单学会 ...
- DS博客作业02—线性表
1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2.谈谈你对线性表的认识及学习体会. 线性表最重要的就是对指针的操作,插入删除都是看指针的指向进行操作以达到改变节点,以达到目的的.对于上学 ...
- DS博客作业01-日期抽象数据类型设计和实现
1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2 学习体会 这周刚刚学习了数据结构绪论和一部分线性表的知识,因为寒假提前预习了一会儿,在课堂上可以较快理解老师讲的内容.但是在c++语法上 ...
- DS博客作业01--日期抽象数据类型设计与实验
1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2 学习体会 2.大作业作业内容 (6分) 2.1 设计日期的ADT类型(1分) ADT DATE{ 数据对象:D={year,mo ...
- 20162322 朱娅霖 作业011 Hash
20162322 2017-2018-1 <程序设计与数据结构>第十一周学习总结 教材学习内容总结 哈希方法 一.定义 哈希:次序--更具体来说是项在集合中的位置--由所保存元素值的某个函 ...
- DS博客作业01-日期抽象数据类型的设计与实现
1.思维导图和学习体会 1.1绪论知识思维导图 1.2学习体会 通过这几节课数据结构的新学习,让我感到了难度,很多概念性的东西,不是很好理解,老师在讲内容的时候,很容易跟不上节奏,我发现这门课的学习一 ...
- DS博客作业01--日期抽象数据类型
1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2学习体会 从暑假看视频到开学的预习,我感觉数据结构与c语言比起来更加抽象,更加难理解,那些概念也只能理解一些字面意思,对时间复杂度 ...
- python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)
类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...
- SQLServer2005创建定时作业任务
SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...
- 使用T-SQL找出执行时间过长的作业
有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下: SELECT sj.name , ...
随机推荐
- NumPy算数运算
NumPy - 算数运算 用于执行算术运算(如add(),subtract(),multiply()和divide())的输入数组必须具有相同的形状或符合数组广播规则. 示例 import numpy ...
- 本地测试ajax遇到的跨域问题
浏览器console问题描述:Cross origin requests are only supported for protocol schemes: http, data, chrome, ch ...
- 智课雅思词汇---二十三、名词性后缀mony
智课雅思词汇---二十三.名词性后缀mony 一.总结 一句话总结:Latin: action, result of an action or condition; a suffix that for ...
- spring: spittr实例 构建简单的web应用
我的环境是: jdk8, spirng4 之前照者书上说的做了,不得成功,于是网上百度,不得其然. 后来看到一篇文章,甚是所感.https://segmentfault.com/q/101000000 ...
- Vector3函数理解-计算两向量之间的角度
1.已知两个向量dirA,dirB.Vector3 dirA = new Vector3(-1,1,0); Vector3 dirB = new Vector3(-1,1,1);2.使向量处于同一个平 ...
- lightoj1234调和级数+欧拉常数
数据比较小时直接算,数据比较大时用公式1+1/2+...+1/n=inn+C+1/(2*n) ,C是欧拉常数0.5772156649 刚开始用的这个1+1/2+...+1/n=in(n+1)+C, ...
- python运行httpserver
$ python -m SimpleHTTPServer $ python3 -m http.server
- 29-THREE.JS 根据公式画形状
<!DOCTYPE html> <html> <head> <title></title> <script src="htt ...
- 【sparkSQL】DataFrame的常用操作
scala> import org.apache.spark.sql.SparkSession import org.apache.spark.sql.SparkSession scala> ...
- 视图框架:Spring MVC 4.0(1)
目录 一.表单标签库 1.1.简介 1.2.常用属性 1.3.form标签与input标签 1.4.checkbox标签 1.5.radiobutton标签 1.6.password标签 1.7.se ...