数据结构中为了存储和查找的方便,用各种树结构来存储文件,本章就浅谈一下各种树的表示方法、特点及各自的用途,本章设计的树结构包括:二叉查找树(二叉排序树)、平衡二叉树(AVL树)、红黑树、B-树、B+树、字典树(trie树)、后缀树、广义后缀树。1、二叉查找树(二叉排序树)
(图a)二叉查找树是...
分类:
其他好文 时间:
2014-06-05 17:38:44
阅读次数:
319
/*
二叉查找树的链表实现:
以及三种遍历方式,删除节点;
查找节点;
author:天下无双
Date:2014-5-28
Version:3.0
*/
#include
#include
typedef int T;//树内节点的数据类型
using namespace std;
class BiTree
{
private:
struct BiNode{
T data;...
分类:
其他好文 时间:
2014-06-05 09:12:12
阅读次数:
217
二叉查找树一般采用二叉链表作为其存储结构,我们这次也采用这样的实现。二叉查找树一般有查找、插入和删除等操作,其中查找是基础,没有查找,插入和删除则无从谈起;而删除算是难点,需处理四种不同的情况,分别是:
无左右孩子,(采取直接删除,须处理其父节点指针)
只有左孩子,(采取其父节点指针指向其左孩子)
只有右孩子、(采取其父节点指针指向其右孩子)
左右孩子都存在,(采取以直接前驱或直接后继代替...
分类:
其他好文 时间:
2014-06-03 00:35:52
阅读次数:
254
算法导论读书笔记(14) -
二叉查找树的具体实现目录二叉查找树的简单Java实现二叉查找树的简单Java实现/** * 二叉查找树 * 部分代码参考自TreeMap的源码 */public
class BinarySearchTree { protected TreeNode root = ...
分类:
其他好文 时间:
2014-05-29 07:54:22
阅读次数:
214
原题地址:https://oj.leetcode.com/problems/unique-binary-search-trees-ii/题意:接上一题,这题要求返回的是所有符合条件的二叉查找树,而上一题要求的是符合条件的二叉查找树的棵数,我们上一题提过,求个数一般思路是动态规划,而枚举的话,我们就考...
分类:
编程语言 时间:
2014-05-26 18:30:01
阅读次数:
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
满足二叉查找树的存储规则。类似折半查找: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
今年是淘米第一年招暑期实习生,笔试好大部分考的是软考的题目啊啊啊啊(劳资后悔当年没考软考刷加权),其他是浅而泛的风格,C++,SQL语句,数据结构(哈夫曼树,二叉查找树,栈后缀表达式,连通无向图),排序算法各种最优最差平均
复杂度……下面记一下考到的软考风格的题目,不过估计其他家也不会考(劳资什么时...
分类:
其他好文 时间:
2014-05-23 03:19:19
阅读次数:
289
红黑树概念
特殊的二叉查找树,每个节点上都有存储位表示节点的颜色是红(Red)或黑(Black)。时间复杂度是O(lgn),效率高。 特性:
(1)每个节点或者是黑色,或者是红色。 (2)根节点是黑色。 (3)每个叶子节点(NIL)是黑色。(只为空(NIL或null)的节点)
(4)如果一个节点是红...
分类:
其他好文 时间:
2014-05-18 01:38:25
阅读次数:
611