相信开源的精神 我为人人,人人为我!
Question 1
二叉树
满二叉树最底层全部都有数据。
完全二叉树,每个节点都优先有左边的分支(前驱结构)。
一颗满二叉树,也是完全二叉树。(满二叉树是完全二叉树中的特例)
“如果一颗具有n个结点的深度为K的二叉树(图A),它的每一个结点都与深度为K的满二叉树(图B)中编号为1~n的节点一一对应”
意思就是 深度为K的二叉树(图A)中的1到10结点 与深度为K的满二叉树(图B)中1到10结点 一一对应。
===================================================================================
Question 2
二叉树的度
结点:指二叉树中一个个的点,就是下图中的0、1、2、3、4、5、6;
度:指父结点下面有几个孩子结点,举两个例子你就明白了。针对结点1,他下面有两个孩子3、4,所以说结点1的度为2;针对结点4,他下面一个孩子都没有,所以说结点4的度为0;
对任何一颗二叉树,度为0的节点(即叶子节点)总是比度为2的结点多一个。
在任意-棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则no=n2+1。
证明:因为二叉树中所有结点的度数均不大于2,所以结点总数(记为n)应等于0度结点数、1度结点(记为n1)和2度结点数之和:
n=no+n1+n2 (式子1)
另一方面,1度结点有一个孩子,2度结点有两个孩子,故二叉树中孩子结点总数是:
n1=2n2
树中只有根结点不是任何结点的孩子,故二叉树中的结点总数又可表示为:
n=n1+2n2+1 (式子2)
由式子1和式子2得到:
no+n1+n2=n1+2n2+1
no=n2+1
=========================================================
Question 3
O(n2)是什么意思
数据结构中的问题,时间复杂度的表示,这里是n的平方。
// O(n): 一维循环
for(i=0;i<100;i++)
// O(n^2): 二维循环
for(i=0;i<100;i++)
for(j=0;j<100;j++)
感觉写错了,应该是 O(n2)。意思是快速排序需要进行2次排序运算才能完成。
【参考】算法时间复杂度Θ(n2)与 O(n2) http://my.oschina.net/caomenglong/blog/382858
=================================================================
Question 4
数据流程图中的 源和潭
数据源(终点)。代表系统之外的实体,可以是人、物或其他软件系统。
=================================================================
Question 5
抽象,高内聚,低耦合
抽象是软件面相对象开发过程中的必要过程。
比如 人,龙,猪,这些实体,我们可以找到共性,并提取出来。
动物就是这三个实体的抽象。
面向对象中我们程序员喜欢把,实体先抽象成一个公用的类(模型)。然后再定义其他的模型(类)继承它。这个过程叫抽象。
一个完整的系统,模块与模块之间,尽可能的使其独立存在。
也就是说,让每个模块,尽可能的独立完成某个特定的子功能。
模块与模块之间的接口,尽量的少而简单。
如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。
这样有利于修改和组合。
高耦合低内聚,好像写错了吧。我们实际开发中,不可能高耦合的,那样代码就像一坨泥一样全部混在一起了,修改都很麻烦的。所以应该是 低耦合。我们工作中还刻意要注意这个问题呢,时刻要注意代码的能解耦。达到高性能。
好的软件设计要达到:高内聚低耦合
什么是高内聚、低耦合?
起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。
耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
有个例子很容易明白:一个程序有50个函数,这个程序执行得非常好;然而一旦你修改其中一个函数,其他49个函数都需要做修改,这就是高耦合的后果。
一旦你理解了它,你编写概要设计的时候设计类或者模块自然会考虑到“高内聚,低耦合”。