《数据结构》第一章同学们提问第45到66楼参考答案

《数据结构》第一章节绪论问题回答45楼到66楼

      本答案由信管1133班第一组(林庆浩,何景涛,易玉环,陈诗韵)负责整理。先表示谢意。大家如果有问题请和他们讨论。

 45.用伪代码和C++描述两种方法来描述算法各有什么优缺点?

伪代码描述算法:伪代码是介于自然语言和程序设计语言之间的方法,它采用某一程序设计语言的基本语法,操作指令可以结合自然语言来设计。优点:能非常完整地表示程序结构的代码,写起来方便,快。 缺点:不能运作

C++描述算法:优点:局部变量可以不声明,并且不用在主函数中调用。使得算法的描述简明清晰,既不拘泥于C++语言的实现细节,又容易转换C++程序。缺点:

 46.请问一个逻辑结构怎样选择最优的存储结构?

这个要根据算法分析时间复杂度,时间复杂度最好是O(1),也就是最优情况,但是每种存储结构都有自己的优缺点,比如顺序表修改、查询都很简单,时间复杂度为O(1),但插入操作的时间复杂度就没那么简单,因为你有可能要移动很多个元素,那么时间复杂度就不是最优情况还有链表的好处是插入简单,只要建立个新结点,连接上去就可以,时间复杂度也是O(1),但要查询就挺麻烦,因为你不知道你要查找的元素在哪,所以就要从头结点一个一个比较查询,直到查到你要的元素。那么它的时间复杂度也不是最优情况。
所以,要根据你逻辑结构选择合适的存储结构,或者两者互补,弥补对方的不足。不过现在不必考虑这个。

 47.数据的存储结构包括哪两种?

顺序存放和非顺序存放

 48.我们知道T(n)<=c X f(n),那么常数C代表什么?

c就是一个常数,如3f(n)。增长趋势是由f(n)由决定,也就是说f(n)和3f(n)二者图像是“平行”的。参照书P13图。

 49. 若伪代码抽象级别高,则其自然语言的数量多一些还是少一些?

多一些

  50楼:ADT指的是什么?

答:ADT指的是抽象数据类型,是一个数据结构以及定义在该结构上的一组操作的总称。

 51楼:如果说数据的逻辑结构是采用存储结构来存储的,那么存储结构是怎么体现或反映数据与数据之间的逻辑关系?

答:数据的存储结构通常为顺序存储结构和链接存储结构,在顺序存储结构中数据之间的逻辑关系由元素的存储位置表示,在链接存储结构中数据之间的逻辑关系是用指针来表示的。

 52楼:数据类型与ADT的区别是什么?

答:数据类型指的是高级程序设计语言支持的基本数据类型,而ADT指的通过各种工具对数据结构的概念类型的描述,简单地说是指一个数学模型以及定义在该模型上的一组操作,是一个实现包括储存数据元素的存储结构以及实现基本操作的算法,在这个数据抽象思想中,数据类型的定义和它的实现是分开的。

 53楼:伪代码相对于其他描述方法来说更加形象具体,因此它被称为算法语言吗?我们平时描述算法一般用哪种描述方法呢?

答:伪码是一种算法描述语言。使用伪码的目的是使被描述的算法可以容易地以任何一种编程语言实现。我们一般可以使用自然语言、流程图、程序设计语言和伪代码来对算法进行描述。

 54楼:数据运算有哪5种运算?

答:1.插入运算;2.删除运算;3.查找运算;4.修改运算;5.排序运算

 56、逻辑结构和储存结构直接是有些什么联系吗?
通俗讲,逻辑结构是面向问题的,从具体问题抽象出来的,即从你的角度看到的结构;物理结构就是实际存储的结构,即在内存里的状态。它们是密切相关的两个方面,一种数据的逻辑结构可以用多种存储结构来存储,而采用不同的存储结构,其数据处理的效率往往是不同的。存储结构是逻辑结构的存储映像。
57、算法设计的一般原则中的抽象分级具体是怎么样的呢
抽象分级:算法是由人阅读、理解、使用和修改的,而研究发现,对大多数人来说,人的认识限度是7+(-)2的。如果算法的操作步骤太多,就会增加算法的理解难度,因此,必须用抽象分级来组织算法的思想。换言之,如果算法的步骤太多,可以将求解步骤抽象一个较抽象的处理,而不用描述相应的处理细节。
58、在学习和实现数据结构中主要用到的C++知识点有哪些?
C++就像是一套工具,实现不同的数据结构使用的工具的种类也有不同,取决于使用者。
59、存储结构中的顺序存储结构和链接存储结构哪个更好更常用?
没有哪个是更好地的,只有根据实际情况选择最适合的存储结构。
60、数据结构只有集合、线性结构、树结构、图结构四种么??还是我们学的这本书只讲这四种???
数据结构是多种多样的,这些是基本数据结构,便于初学者学习。

 61、用指针实现链表是因为每个结点有两个部分,一个是链表中保存的实际数据,另一个是指针,用指针指向下一个节点的数据,从而实现链表结构,那么用指针实现图结构和树结构呢???每个节点增加几个地址来实现么???

这个问题以后再学习树结构和图结构会讲到。

 62、数据的存储结构只有顺序存储结构和链接存储结构么???还是我们学的这本书只讲这两种???

顺序存储结构和链式存储结构是最基本的两种存储结构。还有向量式存储结构、散列式存储结构等。

 63、ADT的定义是静态的吗?一个程序里怎样识别ADT的使用?

ADT称为抽象数据类型,以我的理解,它是我们转换现实世界和计算机世界的桥梁,也是一种现实事物的抽象模型。ADT会转换为算法,算法会用程序语言来表达。

 64、问题1:课本教材1,第13页,图1-11大O记号的含义。这幅图应该怎么理解?
问题2:学习数据结构是否需要微积分的基础?
问题3:伪代码有没有一个世界统一的语法“标准”?

老师答:1)表明当规模增加时,T(n)和cf(n)增长趋势相同,所以对于cf(n)表达式就写成f(n)了。前面系数可以省去掉。
2)如果算法是要运用数学知识或者就是解决数学问题算法则需要。
3)没有。伪者假也,何来统一标准?

  65、算法的空间复杂度中的“空间”是指?

除算法本身和输入输出数据所占的空间外,算法临时开辟的存储空间。一般指的是内存空间。

 66、在第8页的对ADT的说明中,ADT的定义和实现是分开的,那么关于ADT和算法之间的关系是不是就是算法是ADT的具体实现的方式?

是的,ADT只是抽象的数据模型,需要算法来实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值