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 , ...
随机推荐
- mysql官网下载链接——绿色版&安装版
windows64位5.5.60安装版 https://downloads.mysql.com/archives/get/file/mysql-5.5.60-winx64.msi windows64位 ...
- ASP.NET动态生成GridView的使用
根据DataTable动态生成包含checkbox的GridView,其中DataTable中对应checkbox那一列的值必须为bool值. public static GridView Dynam ...
- Ceph 纠删码介绍
http://ceph.org.cn/2016/08/01/ceph-%E7%BA%A0%E5%88%A0%E7%A0%81%E4%BB%8B%E7%BB%8D/
- 报错 IllegalArgumentException occurred calling getter of cn.itcast.entity.Customer.cid
我碰到这个问题的时候,没有数据类型不匹配的情况,也没有表达无法向action传递数据的情况,一直报这样的错误,意思就是无法使用Customer中的get方法来赋值.完整报错如下所示: HTTP Sta ...
- HTTP和HTTPS的区别和联系
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂 ...
- cvFindContours函数
cvFindContours函数: int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour, in ...
- 血的教训 password写成passward,教训应该从首页赋值 参数名
血的教训 password写成passward,教训应该从首页赋值 参数名
- 理解 HTTP2.0
链接 HTTP/2 头部压缩技术介绍 我们知道,HTTP/2 协议由两个 RFC 组成: 一个是 RFC 7540,描述了 HTTP/2 协议本身:一个是 RFC 7541,描述了 HTTP/2 协议 ...
- 关于SQL Sever连接问题
错误: 与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: ...
- 第一章 Linux系统入门
设定目标,寻求方法,勤奋努力,坚持不懈. ------你们知道了,而我们做到了.------ 世界上第一台计算机:ENIAC(埃尼亚克).1946-2 宾夕法尼亚大学. 约翰·冯·诺依曼体系 电脑的组 ...