树是一种应用特别广泛的数据结构,能快速地进行查找。比较常用的主要有二叉排序树、字典树、红黑树、平衡二叉树,一般都会利用递归实现树的遍历。

1.完全二叉树

即满二叉树从左至右,从下往上依次删除节点形成的树。二叉树的相关性质如下:

 2. 二叉排序树

满足特定条件的二叉树,能实现快速地查找,具有一个很重要的性质:中序遍历结果为有序的序列。leetCode算法题常常会涉及。

3. 平衡二叉树

二叉排序树的查找效率很大程度上会取决于树的高度,为了进一步提升二叉排序树的查找效率,对二叉排序树进行优化,形成了平衡二叉树,即左右子树的绝对高度差不超过1的二叉排序树。主要难点在于调整树的结构

4.  黑红树 

红黑树可能大家了解的不是很深,与二叉平衡树一样,它也是一种高效的查找树,最大的特点是树中的节点会赋予不同的颜色进行标记。STL库中的哈希表map的底层结构就是用红黑树实现的。

 5. 字典树

顾名思意,广泛应用于文本查找。除根节点外,树中的每个节点只存储一个字符,从根节点到任意一个节点所经过的路径分别存储一个对应的字符串,一般用来处理英文字符的,汉字形状过多。一颗简单的字典树结构如下:

基本性质如下:

5.1 letCode题型

Implement Trie (Prefix Tree)

Add and Search Word - Data structure design

[1]http://dongxicheng.org/structure/trietree/

[2]《STL源码剖析》——侯捷

[3]《数据结构高分笔记》

[4]https://www.cnblogs.com/grandyang/p/4491665.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值