在二叉树中打印出从某个节点(r)开始和为定值(sum)的所有路径
来源:互联网 发布:qq邮箱mac电脑版下载 编辑:程序博客网 时间:2024/04/28 03:53
通过在函数中定义两个静态栈,对r的每个孩子进行遍历和累计,当遍历到的孩子的节点和与sum相等时就打印出这条路径。
至于遍历的方法,个人认为递归可以比较简单的实现。
本文为模板二叉树中的一个子函数,如果想要整个模板二叉树类的代码请联系本人。
不多说,直接上代码吧,让注释来慢慢说话。
template <class T>void tree<T>::print_route(tree_node<T> *r,T sum){static stack<tree_node<T> > get_s,put_s;if(r==NULL)return;sum-=r->get_data();get_s.push(r);//遍历树的节点的同时用get_s保存节点的存放的数据if(sum<=0){if(0==sum){while(!get_s.empty())put_s.push(get_s.pop());//将get_s中的节点倒入put_s中,这样保证打印的路径从r开始while(!put_s.empty()){cout<<put_s.get_top()->get_data()<<" ";get_s.push(put_s.get_top());put_s.pop();}cout<<endl;}sum+=get_s.pop()->get_data();return;}print_route(r->get_left(),sum);//递归进入r的左子树print_route(r->get_right(),sum);//递归进入r的右子树sum+=get_s.pop()->get_data();}
0 0
- 在二叉树中打印出从某个节点(r)开始和为定值(sum)的所有路径
- 题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶结点所经过的结点形成一条路径。
- 打印出二叉树中结点值的和为输入整数的所有路径
- java 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 20.输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 【剑指offer]输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 【31】给定一个二叉树打印出所有从根结点到叶子结点路径和为 k 的路径
- 【31】给定一个二叉树打印出所有从根结点到叶子结点路径和为 k 的路径
- 《剑指Offer》面试题:打印出二叉树中结点值的和为输入整数的所有路径
- 【算法-java】打印出二叉树中结点值的和为输入整数的所有路径
- 打印二叉树中某个节点的所有父节点
- 打印从根节点到二叉树中指定值节点的路径
- 4.在二元树中找出和为某一值的所有路径 题目:输入一个整数和一棵二元树。 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。 打印出和与输入整数相等的所有路径。
- 微软面试100题系列---在二叉树中找出和为某一定值的所有路径
- 剑指offer_输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径
- 体渲染(一)渲染一个球体
- 17 - 02 - 24 计算机网络(45)(DoS攻击、IP地址欺骗 概述)
- 这家法国收视率最高的电视台,做了一个大胆的举动!
- 紫书 例题7-8 Uva 10603 BFS
- json-lib之jsonConfig详细使用
- 在二叉树中打印出从某个节点(r)开始和为定值(sum)的所有路径
- spring的aspectj简介
- FineReport(帆软)部署到Linux的tomcat7上报错
- JS 手机浏览器唤醒手机QQ
- NumPy的详细教程
- JavaScript面向对象精要(二)
- windows 搭建主从复制
- [21]CSS 传统布局(上)
- [Medium]Remove K Digits