下面是第一章 同学们提问的第111到135个问题答案,答案由物联网2班第一组同学整理。不明白的同学或有异议的同学请和他们联系并讨论。
答案汇总解释:
加粗的答案为老师回答
带删除线部分为本组成员一致不认同的答案,或问题中的笔误部分
黄色背景部分为对原答案的补充
红色文字为原本没有人回答,本组成员补充的答案
下划线为本组成员认为没意义或过于浅显的问题
111:数据结构在C++语音言中起到什么作用?应该怎么正确使用?上学期C++没学好怎么办?√
A:1.提高你写出来的程序的速度与效率。2.在平时的编程就运用到了数据结构的知识,比如数组就是数据结构的体现,根据实际的编程情况准确地运用数据结构的相关知识最大化利用空间时间等就是正确的使用。好好上课,学习好数据结构后自然就能正确的使用。3.对于所使用的数据在计算机中的一些运作例如存取存储之类的问题深入了解以便更好地造作C++程序。 4.上学期没学好那就在接下来的时间内学好它
112:为什么抽象级别高的伪代码自然语言多一些,抽象级别低的伪代码程序设计语言的语句多一些?√
A:因为伪代码采用的是某一程序设计语言的基本语法,以程序设计语言为基础,自然语言多,程序设计语言少,抽象级别就高了
113:时间复杂度和空间复杂度的联系是什么?感觉渗参不透。√
A:以不同的方面来衡量程序的复杂程度,没有什么直接联系。非要说有什么联系的话,那就是两者有共同的目的。
114:前面老师回答说NS图表达算法比流程图要好,那好在哪些方面呢?常不常使用N-S图?√
A:在NS 图中,每个“处理步骤”是用一个盒子表示的,因为除了表示几种标准结构的符号之外,它不再提供其他描述手段,这就有效地保证了设计的质量,其次,NS图形象直观,具有良好的可见度。例如循环的范围、条件语句的范围都是一目了然的,所以容易理解设计意图,为编程、复查、选择测试用例、维护都带来了方便。用流程图描述算法,优点是直观易懂,缺点是严密性不如程序设计语言,灵活性不如自然语言。除了描述程序设计语言的语法规则和一些非常简单的算法,这种描述方法使用起来非常不方便。
115:在选择数据结构的时候,所有数据元素是安排在某一个已经定义好的序列中,还是随机进入?√问题的表述让人无法理解
A:这要看你是怎么选择操作数据结构的方式,例如顺序表就计算机开辟了一个预定的空间来存放你的数据,而单链表就是每存放一个数据计算机再开辟一个小空间。
116:初始时把所有数据元素都插入数据结构还是与其他操作混合在一起插入?√
A:根据情况而定。元素可以在插入操作中插入。根据您的需要可以一开始就把数据按照一定的方式存储进去,在之后的环节里您也可以再存储更多的数据,这就需要到模板类中的各种函数。
117:学习数据结构,需要什么软件来进行调试?√
A:课本是C++版,所以我们使用VC。并且大家均学习过C++有基础。大家也可以选择自己喜爱的并熟悉的语言。数据结构可以理解为对于数据操作的一种思想方法,不是限定了操作的编程语言。
118:算法与数据结构是什么样的关系呢?要如何才能设计一个好的算法呢?√
A:数据结构分为逻辑结构和存储结构。把问题抽象成逻辑结构之后需要选择合适的存储结构来存储进计算机中。但这样并不能解决问题,还要使用“算法”对这些被存储的数据进行相应的、能够解决问题的操作。好的算法具备“正确性”、“健壮性”、“简单性”、“抽象分级”和“高效性”这五大特征。
119:高级程序设计语言支持的基本数据类型和ADT自定义的数据类型在用法和实现上有什么不同吗?√
A:一个抽象数据类型ADT就是:数据+操作,操作包括加法减法乘法、除法等。
在高级语言中,实现新的抽象数据类型,来扩展语言的类型体系,如在c++语言原有的内建类型的基础上,我们还可以根据用户的需求提供如复数等实际环境特征的新型类型,这样大大降低了编程的工作量和复杂性。
120:数据库结构是对C++的补充么√
A:下面有解答 自己去看哦不是,数据结构是指互相之间存在一定关系的数据元素的结合。数据库结构是一个处理数据的抽象的概念,是C++一门具体的编程语言。
121:学好这门课,以前学的C++的知识很重要吗?两门课关联大吗?√
A:数据结构是思想和方法,C++是语言,用来实现方法的工具。学会了思考也要实际操作,利用c++知识可以对数据结构进行实际代码操作。
122:还是不能理解ADT的定义。C++语言的类与ADT之间有什么关系,能举个例子吗?√
A:类是为解决某种问题而对问题的抽象,类的组成也是C++的基本数据类型。类本身也是一种类型,叫类类型,是ADT的实现。ADT包括数据和操作。
123:请问抽象数据类型ADT是怎么实现信息隐藏的呢?√
A:我觉的ADT类似于C++中的类,可以自己定义属性和方法,当把类的属性设置为私有的时候就实现了隐藏。。。?????????????????
124:怎样分析平均情况的时间代价呢??√
A:按照单链表的例子来说吧,例如你要找第一个,那么程序只需要运行一个循环,也就是“1”,可是当你要找最后一个的时间,程序就是运行n次那个循环,所以就是“n”,单链表只可以逐一查找,所以必须每个都要找一次不可以直接查找某个位置,那么1次、2次……n次加起来再一个平均,也就是(1+n)n/2N,舍掉常数,也就是O(n)中的n的理解
125:请问数据类型是否就相当于数据的性质?只是说明数据的取值范围而已吗,应该还包括能对这些数据采取的操作吧。√
A:不是的,数据类型说明的是该类数据所能取值的范围。
126:课本第九页有句话说“算法的有穷性意味着不是所有的计算机程序都是算法”,请问能否认为程序可能具有无穷性?√
A:算法和程序是关联又有区别的两个概念,算法是方法和过程,程序是算法的语言具体实现。对于大多程序来说均是有穷的,但对于特殊程序而言是具有无穷性,比如课本举例。
127:数据结构中有很多伪代码,现在要编写一个程序在VC上运行,是不是要将伪代码转化为源码?√
A:YES
128:如果算法的输出条件被设为无穷的无理数,也就是相当于算法呈现无限循环的状态,算法能否像程序系统一样无限循环执行?如果不能,结果会如何?√
A:计算机无法表达数学概念中的小数点后有无穷个数的无理数。根据算法的“有穷性”,无限循环的一段代码并不能成为算法。
129:数据结构跟数据类型的区别和关系?数据类型是一组值的集合以及定义于这个值集上的“ 一组操作 ” 的总称 一组操作这里是否可以理解为算法√
A:数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由哪些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,物理上的数据结构反映成分数据在计算机内的存储安排。数据结构是数据存在的形式。数据是按照数据结构分类的,具有相同数据结构的数据属同一类。同一类数据的全体称为一个数据类型。在程序设计高级语言中,数据类型用来说明一个数据在数据分类中的归属。它是数据的一种属性。这个属性限定了该数据的变化范围。为了解题的需要,根据数据结构的种类,高级语言定义了一系列的数据类型。不同的高级语言所定义的数据类型不尽相同。
130:怎么区别信息和数据?√
A:数据指所有能输入到计算机中并能被计算机程序识别和处理的符号集合,包括数字、文字、符号、图形图像以及它们能够转换成的数据等形式。所以输入进计算机的就是数据,而数据所包含的意义是信息,信息是对数据的解释、运用与解算,比如一张成绩单就是数据,反应出来优差生的讯息就是信息。
131:最大化地简化数据的组织和处理是从哪方面入手?如果是算法的话,为什么不考虑从逻辑,存储结构入手及技术方面入手?是否有过尝试?√
A:简化组织还是从存储方法入手,处理则是从算法操作入手,二者又是相关的,一个问题要从存储组织、算法、时间和空间等多方面来综合考虑。这是一个大问题,不同数据不同应用是不同的。其实后面你提到的几个方面均是要考虑的。
132:http://my.csdn.net/?ref=toolbar√
A:这个不是问题
133:c++编程不好,能不能顺利学好这门课√
A:可以的。尽量做吧。首先保证老师讲的内容能从总体上把握。
134:鲁棒性也叫健壮性吗√
A:同学,是的妈蛋。请认真看书。