[go: nahoru, domu]

跳转到内容

平衡树:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
PhilHu留言 | 贡献
新条目
 
PhilHu留言 | 贡献
无编辑摘要
第1行: 第1行:
'''平衡树'''是[[计算机科学]]中的一类数据结构。
'''平衡树'''是[[计算机科学]]中的一类数据结构。
[[树_(数据结构)|树]]是计算机科学中的一种重要的查找结构,而一般的查询复杂度是跟目标结点到树根的距离(即深度)有关,因此当结点的深度普遍较大时,查询的均摊复杂度会上升,为了更高效的查询,'''平衡树'''应运而生了。
[[二叉查找树]]是计算机科学中的一种重要的查找结构,而一般的查询复杂度是跟目标结点到树根的距离(即深度)有关,因此当结点的深度普遍较大时,查询的均摊复杂度会上升,为了更高效的查询,'''平衡树'''应运而生了。


[[File:Unbalanced_binary_tree.svg|thumb|240px|不平衡的[[树_(数据结构)|树结构]]]]
[[File:Unbalanced_binary_tree.svg|thumb|240px|不平衡的[[树_(数据结构)|树结构]]]]


在这里,平衡指所有叶子的深度平衡,更广义的是指在树上所有可能查找的均摊复杂度偏低。
在这里,平衡指所有叶子的深度趋于平衡,更广义的是指在树上所有可能查找的均摊复杂度偏低。


[[File:AVLtreef.svg|thumb|240px|平衡的[[树_(数据结构)|树结构]]]]
[[File:AVLtreef.svg|thumb|240px|平衡的[[树_(数据结构)|树结构]]]]

2010年5月25日 (二) 04:59的版本

平衡树计算机科学中的一类数据结构。 二叉查找树是计算机科学中的一种重要的查找结构,而一般的查询复杂度是跟目标结点到树根的距离(即深度)有关,因此当结点的深度普遍较大时,查询的均摊复杂度会上升,为了更高效的查询,平衡树应运而生了。

不平衡的树结构

在这里,平衡指所有叶子的深度趋于平衡,更广义的是指在树上所有可能查找的均摊复杂度偏低。

平衡的树结构

基本操作

几乎所有平衡树的操作都基于树旋转操作,通过旋转操作可以使得树趋于平衡。

各种平衡树

  • AVL树,经典平衡树, 所有操作的最坏复杂度都是的。
  • Treap,利用随机的期望深度来优化树的深度,达到较优的期望复杂度。
  • 伸展树,使得经常查找的结点深度较小,从而降低均摊复杂度。
  • 红黑树
  • 節點大小平衡樹