参照书上写的Huffman树的代码 结构用的是线性存储的结构 不是二叉链表
里面要用到查找最小和第二小 理论上锦标赛法比较好 但是实现好麻烦啊 考虑到数据量不是很大 就直接用比较笨的先找最小 去掉最小再找第二小的方法了。#include
#include #include typedef struc...
分类:
其他好文 时间:
2014-05-26 14:00:45
阅读次数:
256
红黑树的定义
红黑树是满足如下条件的二叉树:(1)每个结点都有颜色标记,要么是黑色,要么是红色(2)根结点是黑色的(3)叶子结点是黑色的(按《算法导论》和其他文献的说法是,这里的叶子结点指的是空结点)(4)红色结点的孩子必须是黑色的(5)从根结点到每一个叶子结点的路径上,黑色结点的个数相同。(...
分类:
其他好文 时间:
2014-05-26 12:14:29
阅读次数:
386
原题地址:https://oj.leetcode.com/problems/validate-binary-search-tree/题意:检测一颗二叉树是否是二叉查找树。解题思路:看到二叉树我们首先想到需要进行递归来解决问题。这道题递归的比较巧妙。让我们来看下面一棵树:
...
分类:
编程语言 时间:
2014-05-26 10:48:19
阅读次数:
291
原题地址:https://oj.leetcode.com/problems/symmetric-tree/题意:判断二叉树是否为对称的。Given
a binary tree, check whether it is a mirror of itself (ie, symmetric around ...
分类:
编程语言 时间:
2014-05-26 10:18:52
阅读次数:
293
题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。分析:首先不能创建新的结构,只能在树的前提下进行改变指针的指向。又由于是二叉搜索树,可以通过画图分析可知,二叉搜索树的左子树小于根节点小于右子树,可以发现是个递归过程也是一个中序遍...
分类:
其他好文 时间:
2014-05-26 08:01:04
阅读次数:
169
#include#include#include#include#include#include#includeusing
namespace std;class node{public: int val; node* left; node* right; node():va...
分类:
其他好文 时间:
2014-05-26 06:48:48
阅读次数:
246
二叉树
1.为什么要使用二叉树?
二叉树结合了有序数组快速查找和线性链表快速插入删除的优势。
树是一种既能像有序数组一样实现快速查询,又能像链表一样实现快速地插入和删除的数据结构.
2.有关树的几个术语
路径:从一个节点走到另一个节点,过程中数据的排列叫做路径.
根:一个树只有一个根,只有子节点,没有父节点.
父节点:每个节点都向上连接的节点叫做父节点,根没有父节点,一个子节...
分类:
其他好文 时间:
2014-05-26 05:59:50
阅读次数:
171
2014 百度之星资格赛,xor sum ,显然是要建一棵0、1树 其实很简单就是二叉树,只不过为了操作简便,即程序的速度,所以就采用静态树,即不动态分配内存,使用较大的全局数组。...
分类:
其他好文 时间:
2014-05-26 05:47:20
阅读次数:
220
题目:输入一颗二叉树的根结点,判断该二叉树是不是平衡二叉树。平衡二叉树是满足所有结点的左右子树的高度差不超过1的二叉树
方案一:遍历数组的每一个结点,对每一个结点求它的左右子树的高度并进行判断。时间复杂度大于O(n),小于O(n^2)效率较低,因为有很多点需要重复访问。
//二叉树的结点
struct BinaryTreeNode{
int m_value;
Bin...
分类:
其他好文 时间:
2014-05-26 04:34:53
阅读次数:
192
满足二叉查找树的存储规则。类似折半查找:import
javax.management.remote.rmi._RMIConnectionImpl_Tie;/** * Created by John on
14-5-22. */public class IntTree { private st...
分类:
编程语言 时间:
2014-05-24 08:04:52
阅读次数:
300