摘要: ##深度优先遍历(栈,先压右节点,再压左节点) 也就深入的遍历,沿着每一个分支直到走到最后,然后才返回来遍历剩余的节点。二叉树不同于图,图需要标记节点是否已经访问过,因为可能会存在环,而二叉树不会出现环,所以不需要标记。那么,我们只需要一个栈空间,来压栈就好了。因为深度优先遍历,遍历了根节点后,就开 阅读全文
posted @ 2020-07-29 18:10 鲸小鱼- 阅读(590) 评论(0) 推荐(0) 编辑
摘要: #1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class 阅读全文
posted @ 2020-07-29 10:34 鲸小鱼- 阅读(281) 评论(0) 推荐(0) 编辑
摘要: #1.概念: 广度优先搜索算法(Breadth-First-Search),又译作宽度优先搜索,或横向优先搜索,简称BFS,是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。广度优先搜索的实现一般采用open-closed表。 #2.解析 阅读全文
posted @ 2020-07-29 09:59 鲸小鱼- 阅读(555) 评论(0) 推荐(0) 编辑