摘要: 题目描述 "链接" 给出一棵二叉搜索树(给出每个结点的左右孩子),且已知根结点为0,求并且给出应该插入这个二叉搜索树的数值,求这棵二叉树的层序遍历 分析 给了下标,肯定用静态数组实现 利用的性质:二叉搜索树中序遍历肯定有有序 对所给key进行排序,得到中序遍历次序 利用中序遍历次序,对树进行遍历,可 阅读全文
posted @ 2019-08-01 21:29 Doragd 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目描述 "链接" 输入树的结点个数N,结点编号为1~N,非叶子结点个数M,然后输出M个非叶子结点的孩子结点的编号,求结点个数最多的一层,根结点的层号为1,输出该层的结点个数以及层号 这道题类似于前面的那个可以用DFS,BFS解的题 BFS c++ void bfs(){ queue q; laye 阅读全文
posted @ 2019-08-01 20:35 Doragd 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 题目描述 "链接" 给一棵树,在树根处货物的价格为p,然后每往下走一层,价格增加r%,求所有叶子结点的最高价格,以及这个价格的叶子结点个数 分析 关键在于dfs怎么设计来保存这个最大值,以及最大值的个数 别人的代码如下,比较巧。。。还用了个maxnum。。我怎么没想到 c++ void dfs(in 阅读全文
posted @ 2019-08-01 19:47 Doragd 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目描述 "链接" 用栈的形式给出一棵二叉树的建立的顺序,求这棵二叉树的后序遍历 分析 性质: 树的先序等于入栈次序,树的中序遍历等于出栈次序 先序:先访问根再入栈,所以入栈次序就是先序遍历次序 中序:先递归访问左子树,回溯时访问根,回溯时即出栈时,所以出栈次序就是中序遍历 所以问题转换为已知先序中 阅读全文
posted @ 2019-08-01 18:34 Doragd 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目描述 "链接" 给一棵树,在树根出货物的价格为p,然后从根结点开始每往下走一层,该层的货物价格将会在父亲结点的价格上增加r%,给出每个叶结点的货物量,求他们的价格之和 分析 supply chain看作一棵树 其他注意点在代码中 c++ include using namespace std; 阅读全文
posted @ 2019-08-01 13:55 Doragd 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题目描述 "链接" 给出一棵树,问每一层各有多少个叶子结点 分析 建树 使用树的静态写法 下标为结点地址 这里题目只是用到了结点的编号,没有点权,所以变成 BFS解法 很自然可以想到用BFS遍历树,对于一个结点,如果没有孩子$child.size()==0$ 则说明是叶子,那么当层的$ans[lay 阅读全文
posted @ 2019-08-01 13:00 Doragd 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目描述 "链接" 给一串构成树的序列,已知该树是完全二叉搜索树,求它的层序遍历的序列 分析 二叉搜索树的性质:左子树改造中序遍历程序,将访问变成赋值 得到数组存储顺序 得到层序遍历顺序 完全二叉树:结点为空:$i n$ 结点为叶子:$2i n$ c++ include using namespac 阅读全文
posted @ 2019-08-01 03:46 Doragd 阅读(210) 评论(0) 推荐(0) 编辑