题目:《编程之美》P241
提示:利用动态规划的思想,保存每次循环所计算出来的数据,可以避免重复计算
class treenode
{
public:
int data;
shared_ptr left,right;
treenode(int d,const shared_ptr &l,const shared_ptr &r):data(d),left(l),right(r){}...
分类:
其他好文 时间:
2015-02-04 14:42:16
阅读次数:
112
转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4253605.html声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处...
分类:
其他好文 时间:
2015-01-27 19:48:52
阅读次数:
277
如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。解法:用递归的方法 1 // 数据结构定义 2 struct NODE 3 { 4 NODE* pLeft; // 左子树...
分类:
其他好文 时间:
2014-12-23 11:53:47
阅读次数:
120
题目大意:给定一棵有根树,每次操作可以使某条边边权+1,求最少的操作次数,使根节点到每一个叶节点的距离都相等
树形DP
容易发现操作对于越靠近根节点的边进行越有利
首先对于每个节点扫一遍记录这个节点到子树中所有叶节点的最大距离 然后枚举每一个儿子 将该节点和该儿子之间的边权补至最大距离相等
对于每个节点都如此做 最后就能保证根节点到每个叶节点的距离都相等
数据有误坑死人……
#incl...
分类:
其他好文 时间:
2014-12-09 14:01:30
阅读次数:
183
typedef struct Node {
struct Node *pleft; //左孩子
struct Node *pright; //右孩子
char chValue; //该节点的值
int leftMaxValue; //左子树最长距离
int rightMaxValue; //右子树最长...
分类:
其他好文 时间:
2014-11-12 00:50:53
阅读次数:
195
问题描述:
如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,
我们姑且定义"距离"为两节点之间边的个数。
写一个程序,
求一棵二叉树中相距最远的两个节点之间的距离。...
分类:
其他好文 时间:
2014-10-05 04:54:57
阅读次数:
295
问题描述:
如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。
写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。测试用的树:
n1
/ ...
分类:
其他好文 时间:
2014-10-04 11:05:26
阅读次数:
372
第 11 题(树)求二叉树中节点的最大距离...如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。思路:二叉树结构中只设了左右子节点的指针。设单个结点的深度为0。用后序遍历,得到每个结点为根的...
分类:
其他好文 时间:
2014-09-12 20:32:34
阅读次数:
187
题目:给定一棵二叉树,结点的距离就是两个结点之间路径包含的结点的数目,求结点的最大距离。可以参考这两篇文章:《编程之美: 求二叉树中节点的最大距离》的另一个解法和Tree Diameter思路:在每一个结点处,求两个信息:以该结点为根的树的高度,以及以该结点为根的树中包含的最大距离。因为所求的最大距...
分类:
其他好文 时间:
2014-08-27 16:21:08
阅读次数:
188
摘自 编程之美编程之美的第3.8题求二叉树中节点的最大距离中,在总结的时候,作者讲了一个分析递归问题的体会;1、首先弄清楚递归的顺序。 在递归的实现中,往往需要假设后续的调用已经完成,在此基础之上,才实现递归的逻辑。2、分析清楚递归体的逻辑然后写出来。3、考虑清楚递归退出的边界条件。也就是说,那些....
分类:
其他好文 时间:
2014-08-22 12:12:06
阅读次数:
212