求二叉树中节点的最大距离
2012-02-10 13:58
218 查看
如果我们把二叉树看成一个图,
父子节点之间的连线看成是双向的,
我们姑且定义"距离"为两节点之间边的个数。
写一个程序,
求一棵二叉树中相距最远的两个节点之间的距离。
思路:运用递归算法即可,
void maxedge(BSTree root, int& icount, int& maxnum)
{
if (root == NULL)
return;
++icount;
maxedge(root->m_pleft, icount, maxnum);
maxedge(root->m_pright, icount, maxnum);
if (icount > maxnum)
maxnum = icount;
--icount;
}
int main()
{
......
int icount(0), maxnum(0);
maxedge(root, icount, maxnum);
std::cout << "The max path:" << maxnum - 1 << std::endl;
return 0;
}
父子节点之间的连线看成是双向的,
我们姑且定义"距离"为两节点之间边的个数。
写一个程序,
求一棵二叉树中相距最远的两个节点之间的距离。
思路:运用递归算法即可,
void maxedge(BSTree root, int& icount, int& maxnum)
{
if (root == NULL)
return;
++icount;
maxedge(root->m_pleft, icount, maxnum);
maxedge(root->m_pright, icount, maxnum);
if (icount > maxnum)
maxnum = icount;
--icount;
}
int main()
{
......
int icount(0), maxnum(0);
maxedge(root, icount, maxnum);
std::cout << "The max path:" << maxnum - 1 << std::endl;
return 0;
}
相关文章推荐
- 求二叉树中节点的最大距离算法(C)
- 求二叉树中节点的最大距离
- 二叉树节点间的最大距离问题
- 求二叉树中节点的最大距离
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 编程之美3.8 求二叉树中节点的最大距离
- 编程之美3.8 求二叉树中节点的最大距离
- 算法习题11:求二叉树中节点的最大距离
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 二叉树中任意两个节点之间的最大距离
- No11、求二叉树中节点的最大距离...
- 求二叉树中节点的最大距离(递归算法)
- 二叉树中节点的最大距离
- 编程之美--求二叉树中节点的最大距离
- 《编程之美》读书笔记12: 3.8 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 微软面试100道之11 求二叉树中节点的最大距离
- 微软面试100题系列---求二叉树中节点的最大距离