信管1132班 第一组整理 同学们有什么异议找他们讨论。
23 :数据的逻辑结构,数据的存储结构及数据的运算之间存在着怎样的关系?
答:数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关联方式或“邻接关系”),数据的存储结构是数据结构在计算机中的表示,包括数据元素的表示及其关系的表示。数据的运算是对数据定义的一组操作,运算是定义在逻辑结构上的,和存储结构无关,而运算的实现则是依赖于存储结构。
24:ADT是不是可以直接理解或形象成一个数据结构?
答:ADT是抽象数据结构的简称,是基本数据类型的一种更高层次的抽象,在C++中可以具体为类,有属性,方法,由多种基本数据类型组成
25:为什么说ADT是对数据类型的进一步抽象?
答:数据类型是一组值的集合以及定义于这个值集上的一组操作的总称。数据类型已经是对现实世界的抽象了。例如整型就是对整数的取值范围以及运算方式的抽象。浮点型就是对小数的取值范围以及运算方式的抽象。那么ADT是用户自定的数据类型,里面包含了基本数据类型的成员,也有对这些成员的操作或者运算。那么就是在抽象的基础上再进一步的抽象。
26:在现在的信息时代,计算机已经快速了,基本的算法都可以在1到2秒内计算出来,那么算法的时间复杂度还会是衡量一个算法优劣的重要标准?
答:还会是,而且以后会越来越重要。计算机的运行速度虽然提高了很多,但是处理的数据是指数级别增长的,而且计算机现在并不仅仅用于计算,人工智能等领域的发展需求更智能,更可靠的算法。
27:ADT与int的代码有何不同?
答:二者的抽象程度不同, int具体为4个字节,而ADT则不局限于此, 是对客观事物的一种描述。
28:物理结构中,顺序存储结构和链接存储结构哪个更具有优势?
答:二者各有特点,顺序存储,存储的效率更高,但是会在磁盘中产生碎片,链式存储效率相对较低(因为要保存下一个节点的地址),但是不会产生碎片。
29:数据结构和程序设计之间存在怎样的关系呢?我们应该如何找到一个学习的切入点?
答:程序=算法+数据结构。
切入点:多写多练多看多思考。
30:ADT的定义和设计的区别在哪里?定义时的操作集合和设计时的算法设计的区别呢?
答:ADT只是对数据结构作抽象说明,操作只是介绍性的功能,条件的返回等抽象说明,没有具体算法和具体数据,设计则是针对具体问题的具体数据,具体算法,具体代码了。
32:老师说链接存储方式是随机的,所有的东西存储了,以后还是要找出来的吧,那么要读取以前的以链接存储的数据的话,应该怎么读取?
答:根据链表的首地址,依次遍历。
33:数据结构和算法有什么关联?线性表的顺序存储和链表存储各有什么优缺点?
答:算法是根据不同的数据结构设计的,算法操作数据结构。
顺序存储,存储的效率更高,存取速度快,但是会在磁盘中产生碎片,链式存储效率相对较低(因为要保存下一个节点的地址),存取速度相对较慢,但是不会产生碎片。
34:伪代码的使用能带来哪些便捷?
答:关注算法本身忽略语言细节。
35:我想问下数据结构和ADT的概念与程序设计语言中数据类型概念的一些区别?
答:上文有回答。
36:通常需要分析平均情况的时间代价,特别是算法要处理不同的输入时,但它要求已知输入数据是如何分布的。要求已知输入数据是如何分布是什么意思?
答:数据值的集中程度,相似程度,数据类型等。
37:我想问一下,ADT在课本里有给出他的定义规则,但是我在课本里却找不到ADT的实例出来。ADT的定义究竟是那种隐式的定义,还是需要我们用代码写出来的?如果是非隐式的定义,有没有一个实例给我看一下?
答:可以具体为C++中的类。非隐式的可以理解为对基本数据类型的抽象。
38:怎么在c++中实现数据结构?定义ADT的作用是什么?
答:定义ADT是为了更好的描述客观事物。
39:算法是解决问题的方法,如何编写一个好算法?这也应该是我们以后努力学习的方向。
答: 好的算法是反复修正的结果,是思维的火花。
40:求一个不抽象的ADT解释。
答:C++中的类;
41:课本对ADT的解释不是很明白,有没有更直接,比较容易理解的解释呀?
答:同上。
42:那么多概念,比如说算法的什么性什么性需要背诵吗?
答:理解就好。
43:若一个算法的时间复杂度为一个常数,那么将他表示成数量级的形式是什么意思?
答:这个...同问。
44::数据结构与数据库有什么联系?
答,数据库中的数据是按照一定的结构存储的。是对存贮数据的一种描述。