
编程之美
Cainell
这个作者很懒,什么都没留下…
展开
-
编程之美 3.10 分层遍历二叉树 扩展问题
扩展问题 如果要求按深度从下到上访问图3-23中的二叉树,每层的访问顺序仍然是从左到右: 比较容易想到的方法是先按照层序弄好一个待遍历数组,层与层之间考虑用一个标识NULL作为分割,这样只需要反向遍历这个数组就行了,不过要注意的是弄这个遍历数组一定要先压入右节点,再压入左节点。 代码 void printNodeByLevel(Node *root) { vector<Node*> vec; int cur , last;//设定该层的起始点和结束点 vec.push_back(root)原创 2020-09-08 11:27:41 · 162 阅读 · 0 评论 -
编程之美 3.9 重建二叉树 扩展问题
扩展问题1 如果前序和中序遍历的字母有重复的,那么怎么构造所有可能的解呢? 搜索所有可能的情况,并调用扩展问题2的解决方案,判断此情况是否合理(剪枝操作), 如果合法,则构造解. 扩展问题2 如何判断给定的前序遍历和中序遍历的结果是合理的? 递归算法实现,分别遍历左右子树,递归中迭代查找左右子树的长度,类似于书中的方法。 代码,可判断给定前序遍历和中序遍历是否合理? #include <iostream> #include <string> using namespace std;原创 2020-09-08 09:46:04 · 239 阅读 · 0 评论