-
二叉树就是一个根节点下面有几个节点就是几叉树,以下为2叉树,由于第一层的节点有两个子节点所以记成n2,n1只有一个子节点记成n1,以此类推n0。(度为几就是树的子节点和是多少)
![](https://i-blog.csdnimg.cn/blog_migrate/feeb70f0002217f545451fb90660a561.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c946d333351ce68a9cb40060bb3ae0e1.png)
-
以上为二叉树的三种遍历:
![](https://i-blog.csdnimg.cn/blog_migrate/e53040fc170df0b6b9f5abdc9cf2d276.png)
注:每个节点的第一次被遍历时属于前序遍历,每个节点的第二次被遍历时属于中序遍历,每个节点的第三次被遍历时属于后序遍历
遍历过程:上面二叉树遍历先从A开始从上往下,从左往右,第一次访问A,A被遍历一次所以前序遍历第一个为A,接下来变遍历左节点B,B第一次被遍历所以前序遍历第二个为B,然后遍历B的左节点,因为没有节点所以重新返回到B,B又被遍历,B被遍历第二次所以中序遍历第一个为B,然后遍历B右节点,因为没有节点所以重新返回到B,B又被遍历,B被遍历第三次所以后序遍历第一个也为B,然后再返回到A,A被遍历了第二次所以中序遍历第二个为A,然后遍历C,因为C第一次被遍历所以前序遍历第三个就是C,然后遍历C左节点因为没有节点所以重新返回到C,C又被遍历,C被遍历第二次所以中序遍历第三个为C,然后遍历C右节点,因为没有节点所以重新返回到C,C又被遍历,C被遍历第三次所以后序遍历第二个为C,然后返回到A,A被遍历第三次所以,后序遍历的第三个为A。
遍历的口诀:
【1】前中一样,后序倒着写。
【2】中后一样,前序倒着写。
-
带链的考题:(背会)
![](https://i-blog.csdnimg.cn/blog_migrate/8b54b797d69619a214464c6a291bbb9b.png)
-
下面的时二叉树和满二叉树的公式,前两个适用于二叉树,后两个适用于满二叉树。二叉树就是没有n1节点的树。如果下面公式算出来的是小数则是不可能存在这样的树。(注:n次方就是这个二叉树有多少层)
![](https://i-blog.csdnimg.cn/blog_migrate/f52edf71241b3a90cfa2834a808c50ea.png)
-
完全二叉树是指除最后一层外,每一层的节点数均达到最大值,在最后一层上只缺少右边的若干节点。完全二叉树的n1要么是0个要么是1个。
![](https://i-blog.csdnimg.cn/blog_migrate/e1376614bf5df86162fe0ecb24586244.png)
6.
![](https://i-blog.csdnimg.cn/blog_migrate/c1e204d7f25be3cc2939eb859bdbf080.png)
-
顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。
![](https://i-blog.csdnimg.cn/blog_migrate/d31b9c993513406ec3973afb61d7c60e.png)
-
双向链表和循环链表和带链的栈都是线性结构,二叉链表是非线性结构,有两个指针域的既可以为线性结构也可以是非线性结构。
-
下图第一层为双向链表,第二层为循环链表,第三层为顺序结构,第四层为二叉链表。
![](https://i-blog.csdnimg.cn/blog_migrate/659ecf11c5d251e6cbf9925f98727fd7.png)
-
循环队列中的元素是由队头指针和队尾指针共同决定的。
![](https://i-blog.csdnimg.cn/blog_migrate/edecebebe52f15c76caad1f177f44e42.png)
![](https://i-blog.csdnimg.cn/blog_migrate/09f17c13cb23f3fc48e8127a6307efec.png)
-
堆要么就是上面比下面大,要么就是上面比下面统一都要小。例如下面:
![](https://i-blog.csdnimg.cn/blog_migrate/b5c37a5f56d5913690449d9d4917992a.png)
-
由下图可见栈和队列以及线性存储和非线性存储对于顺序存储和链式存储都可以用,B,C选项要背会。二叉树和堆也可以使用顺序存储结构。
![](https://i-blog.csdnimg.cn/blog_migrate/a06f2db87a1f964ab39dd3625047da76.png)
13.下面这个看清楚怎么做的。
![](https://i-blog.csdnimg.cn/blog_migrate/347b67c83d9fed366ec2263d0cdfc913.png)
-
最坏情况下的排序方法:(补充:顺序查找是n次,寻找最大项是n-1次。)
![](https://i-blog.csdnimg.cn/blog_migrate/50d137a1a9e1758d49ff7354d3b9ccfc.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b93bb75d7d4bdf9c4a0e51542ad7f9ed.png)
-
支持子程序调用的数据结构就是栈(栈存储元素是先进后出,队列是先进先出)
-
这类题就是自己去画然后进行判断。(总结点就是所有节点之和再加1)
![](https://i-blog.csdnimg.cn/blog_migrate/5053ff05ee61177abff5c028dd5f025e.png)
16.下图可见B选项的5—>4—>1—>3—>2一条线所以为线性结构,这类题就是把选项中的画出来连起来看是不是一条线。
![](https://i-blog.csdnimg.cn/blog_migrate/83a2e663e98261eb23ec0621f078b12a.png)
-
程序可以作为算法的描述方法。
-
在栈中,栈顶指针的动态变化决定栈中元素的个数。
-
时间复杂度指的是执行算法的基本运算次数。空间复杂度指的是算法在执行过程中所需要的计算机存储空间。
![](https://i-blog.csdnimg.cn/blog_migrate/62b4b285f0a228dfad9059061a3cfc5f.png)
-
下面这个题由于栈最大存储空间为m,top = m+1超出了存储空间所以不可能,top为几就是有几个元素。还有一种计算方法就是初始状态+现在的个数 = 之后top的状态+里面的个数。
![](https://i-blog.csdnimg.cn/blog_migrate/a51d16371ece9b78aa8a65d3dc21a532.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1112ae1932b3d089c83879df62522c86.png)
-
算法的有穷性指的是算法程序的运行时间是有限的。
-
下面这种题的做法多练几次。结合有前面遍历时候的口诀知识。
![](https://i-blog.csdnimg.cn/blog_migrate/ce4e577faaa8054ea9377f131ab912ee.png)
-
这个题很经典要研究会或者背会。
![](https://i-blog.csdnimg.cn/blog_migrate/3263ac615bd96eb0b31bad85c3d4b516.png)
-
每经过一次元素的交换会产生新的逆序的是快速排序。
-
对数据进行压缩存储会降低算法的空间复杂度。
-
在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是非线性结构。
-
链表结点中具有两个指针域的数据结构可以是线性结构(双向链表),也可以是非线性结构(二叉链表)。
-
带链队列的存储空间可以不连续,且队头指针可以大于也可以小于队尾指针。
-
平均情况与最坏情况下的时间复杂度相同的是在顺序存储的线性表中寻找最大项。
-
DBMS是系统软件,软件分为系统软件,应用软件,支撑软件。
-
需求分析步骤
-
软件总体结构设计属于开发阶段。
![](https://i-blog.csdnimg.cn/blog_migrate/1ef342a2be20224596e96a00f4bdeac2.png)
-
结构化程序
![](https://i-blog.csdnimg.cn/blog_migrate/257b3950f66400b1c970929030d2feec.png)
-
软件使用不涉及知识产权。
![](https://i-blog.csdnimg.cn/blog_migrate/083eef89a3fb45e2f4363ac2275816af.png)
![](https://i-blog.csdnimg.cn/blog_migrate/02776b581efd399cdc59f92433449285.png)
-
属于白盒测试是简记:白逻基,黑盒测试简记:等边错。
![](https://i-blog.csdnimg.cn/blog_migrate/a72dd53591714ebaf1dad96f79e672e7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cfbb781ea667b7845c6372d485b2d8d9.png)
-
软件测试用例包括:输入数据和预期输出结果。计算机软件的构成是程序,数据及相关文档。
-
需求分析方法所需要的方法:
![](https://i-blog.csdnimg.cn/blog_migrate/e350324040c11100fb2d7e9578640516.png)
-
软件设计工具:
![](https://i-blog.csdnimg.cn/blog_migrate/3cc4a1ec9f7d75a5bf10081ed7f26a4a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9bf5ba40e6a0278b873f732cca5d9f60.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c8c01d2850193a36a539a91a5ffcfe7e.png)
-
数据字典(DD)所定义的对象都包含于数据流图(DFD图)。
41.软件测试的实施步骤:
![](https://i-blog.csdnimg.cn/blog_migrate/bee6d4b90200449495b72212fa53ef2c.png)
-
软件生命周期:
软件产品从提出,实现,使用,维护到停止使用退役过程。
-
软件危机表现是:
【1】软件开发生产率低。
【2】软件质量难以控制。
【3】软件成本不断提高。
-
UNIX系统属于系统软件。
-
关系数据库的三个模式:
三级模式即概念模式、内模式和外模式。
【1】概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
【2】外模式也称子模式或者用户模式,是用户的数据视图,也就是用户所能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。
【3】内模式又称物理模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
-
不是关系数据库的基本特征的是:不同列应有不同的数据类型。关系模型中的关系模式至少是1NF。