随笔分类 - 树
摘要:题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶子结点一次经过的结点形成树的一条路径,最长路径的长度为树的深度。根节点的深度为1。解体思路:如果根节点为空,则深度为0,返回0,递归的出口如果根节点不为空,那么深度至少为1,然后我们求他们左右子树的深度,比较左右子树深度值,返回较大的那一个通过递归调用#include<iostream>#include<stdlib.h>using namespace std;struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode*
阅读全文
摘要:#include <queue>#include <string>#include <vector>#include <iostream>using namespace std;vector<int> V;struct Node { int len; Node* right; Node* left; Node(int x = 0) : len(x), right(NULL), left(NULL) {}};class Op {public: bool operator()(Node* const lhs, Node* const rh
阅读全文
摘要:1.哈夫曼树的基本概念最优二叉树,也称哈夫曼(Haffman)树,是指对于一组带有确定权值的叶结点,构造的具有最小带权路径长度的二叉树。那么什么是二叉树的带权路径长度呢?在前面我们介绍过路径和结点的路径长度的概念,而二叉树的路径长度则是指由根结点到所有叶结点的路径长度之和。如果二叉树中的叶结点都具有一定的权值,则可将这一概念加以推广。设二叉树具有n 个带权值的叶结点,那么从根结点到各个叶结点的路径长度与相应结点权值的乘积之和叫做二叉树的带权路径长度,记为:其中Wk 为第k 个叶结点的权值,Lk 为第k 个叶结点的路径长度。如图6.16 所示的二叉树,它的带权路径长度值WPL=2×2+
阅读全文