在二元树中找出和为某一值的所有路径
来源:互联网 发布:淘宝贷款出额度付3000 编辑:程序博客网 时间:2024/05/21 11:07
输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,然后打印出和与输入整数相等的所有路径。
#include <iostream>#include<stack>#include<vector>using namespace std;typedef struct BinaryTreeNode {int m_nValue;BinaryTreeNode * m_pLeft;BinaryTreeNode * m_pRight;} BinaryTreeNode; /* 表示一个元素的三元组结构 */vector<int> vec;void initTree(BinaryTreeNode* head);void findRoute(BinaryTreeNode* head, int arg0, int count);int main() {BinaryTreeNode* head = new BinaryTreeNode();initTree(head);int arg0 = 22;int count = 0;cout << "二叉树中和为" << arg0 << "的路径:" << endl;findRoute(head, arg0, count);return 0;}void initTree(BinaryTreeNode* head) {if (!head)return;BinaryTreeNode* child1 = new BinaryTreeNode();BinaryTreeNode* child2 = new BinaryTreeNode();BinaryTreeNode* child3 = new BinaryTreeNode();BinaryTreeNode* child4 = new BinaryTreeNode();head->m_nValue = 10;child1->m_nValue = 5;child2->m_nValue = 12;child3->m_nValue = 4;child4->m_nValue = 7;head->m_pLeft = child1;head->m_pRight = child2;child1->m_pLeft = child3;child1->m_pRight = child4;}void findRoute(BinaryTreeNode* head, int arg0, int count) {if (!head) {return;} else {if (count + head->m_nValue == arg0) {if (head->m_pLeft || head->m_pRight) {//非叶子结点return;} else {for (int i = 0; i < vec.size(); ++i) {cout << " " << vec[i];}cout << " " << head->m_nValue << endl;return;}} else if (count + head->m_nValue > arg0) {return;} else {if (head->m_pLeft) {vec.push_back(head->m_nValue);findRoute(head->m_pLeft, arg0, count + head->m_nValue);vec.erase(vec.end() - 1);}if (head->m_pRight) {vec.push_back(head->m_nValue);findRoute(head->m_pRight, arg0, count + head->m_nValue);vec.erase(vec.end() - 1);}}}}
1 0
- 在二元树中找出和为某一值的所有路径的个人代码
- 在二元树中找出和为某一值的所有路径(树)
- 在二元树中找出和为某一值的所有路径(树)
- 4.在二元树中找出和为某一值的所有路径(树)
- No4、在二元树中找出和为某一值的所有路径(树)
- 在二元树中找出和为某一值的所有路径(树)
- 在二元树中找出和为某一值的所有路径(树)
- 4.在二元树中找出和为某一值的所有路径(树)
- 4.在二元树中找出和为某一值的所有路径(树)
- 4.在二元树中找出和为某一值的所有路径(树)
- 在二元树中找出和为某一值的所有路径-递归算法
- 在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径
- 算法讨论(三)---在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径
- 算法题23 在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径
- 软件设计——UML建模-流程图、时序图、部署图
- python3 操作MySQL
- 江苏中理网络科技是做什么的?
- Android界面优化3
- 一个简单的方法修复ubuntu引导损坏
- 在二元树中找出和为某一值的所有路径
- 如何为网站撰写内容
- Homestead 使用总结
- 我的2016—“不平凡”的一年
- SVN和Git 介绍,区别,优缺点,适用范围总结
- 狄拉克δ函数
- React Native从零开始(四)打包发布(Android)
- 第一本书 第五章 上机
- 3-sum问题