详谈树结构(传统树、字典树、hash 树、Merkle Patr

2018-10-10  本文已影响0人  ai_chen2050

关于数据结构中树结构的相关分享

本文参考: 树结构参考文献

一、传统的数据结构中的树结构

[图片上传失败...(image-83b557-1539180310707)]

1.1 二叉查找树

  1. 左子树上所有结点的值均小于它的根结点的值;右子树均大于或等于它的根结点的值;
  2. 左、右子树也分别为二叉排序树;

1.2 平衡二叉树

1.3 平衡二叉树之红黑树

[图片上传失败...(image-d6bf01-1539180310707)]

性质1. 节点是红色或黑色,根是黑色,所有叶子都是黑色

性质2. 每个红色节点必须有两个黑色的子节点。(从每个叶子到根的所有路径上不能有两个连续的红色节点,即红黑相间),从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点(简称黑高)。

[图片上传失败...(image-52c714-1539180310707)]

在这里插入图片描述

1.4 B 树

1.5 B+树

B+树是B树的变体,也是一种多路搜索树:

  1. 其定义基本与B-树相同,除了:
  2. 非叶子结点的子树指针与关键字个数相同
  3. 非叶子结点的子树指针P[i],指向关键字值属于[K[i], K[i+1])的子树(B-树是开区间);
  4. 为所有叶子结点增加一个链指针
  5. 所有关键字都在叶子结点出现

[图片上传失败...(image-c2ce8e-1539180310707)]

B+ 树的性质:
1.所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好是有序的;
2.不可能在非叶子结点命中;
3.非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层;
4.更适合文件索引系统。

1.6 B* 树

所以,B*树分配新结点的概率比B+树要低,空间使用率更高。

二、字典树 ( Trie树 )

Tire树称为字典树,又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。

Tire树的三个基本性质:

  1. 根节点不包含字符,除根节点外每一个节点都只包含一个字符;
  2. 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串;
  3. 每个节点的所有子节点包含的字符都不相同。

Tire树的应用:

给出N个单词组成的熟词表,以及一篇全用小写英文书写的文章,请你按最早出现的顺序写出所有不在熟词表中的生词。在这道题中,我们可以用数组枚举,用哈希,用字典树,先把熟词建一棵树,然后读入文章进行比较,这种方法效率是比较高的。

给定N个互不相同的仅由一个单词构成的英文名,让你将他们按字典序从小到大输出。用字典树进行排序,采用数组的方式创建字典树,这棵树的每个结点的所有儿子很显然地按照其字母大小排序。对这棵树进行先序遍历即可。

对所有串建立字典树,对于两个串的最长公共前缀的长度即他们所在的结点的公共祖先个数,于是,问题就转化为求公共祖先的问题。

三、决策树(利用信息论的熵依靠决策树做决策选择)

H(X) = -\sum\limits_{i=1}^{n}p_i logp_i

H(X|Y) = -\sum\limits_{i=1}^{n}p(x_i,y_i)logp(x_i|y_i) = \sum\limits_{j=1}^{n}p(y_j)H(X|y_j)

[图片上传失败...(image-f00bd3-1539180310707)]

I_R(D,A) = \frac{I(A,D)}{H_A(D)}

Gini(p) = \sum\limits_{k=1}^{K}p_k(1-p_k) = 1- \sum\limits_{k=1}^{K}p_k^2

Gini(p) = 2p(1-p)

[图片上传失败...(image-d70c23-1539180310707)]

四、梅克尔帕特里夏树( Merkle Patricia Tree, MPT)

[i0, i1, ... iN, value]

[图片上传失败...(image-8a3963-1539180310707)]

[图片上传失败...(image-69461e-1539180310707)]

[图片上传失败...(image-987993-1539180310707)]

MPT

五、计算机科学中的树结构

[图片上传失败...(image-58f33c-1539180310707)]

参考文献:
1、http://blog.jobbole.com/111680/
2、https://blog.csdn.net/mine_song/article/details/63251546
3、https://www.cnblogs.com/pinard/p/6050306.html
4、https://blog.csdn.net/qq_33935254/article/details/55505472

上一篇 下一篇

猜你喜欢

热点阅读