AVL树

  树对于查找是非常方便的,例如stl中常用的map和set,尤其是对于大数据量的情况下,树的查找要比数组和链表要快的多。

  本文主要是实现AVL树,AVL树是一种平衡树,就是在插入时通过某种调整使某个节点的左右子树的高度差不大于1。

  具体算法:

  当某个节点不符合条件时,以右子树高于左子树为例,此时需要向左循环以增加左子树的高度,这时需要将右子树代替当前节点,并且的右子树的左子树调整为当前节点的右子树,其他不变,但是有一种可能行,就行右子树的右子树比较矮(比左子树的高度小1),因此在进行调整之前先把右子树的节点向右循环进行调整。

  整个树的操作都是以递归的方式实现的。

  源码地址:https://files.cnblogs.com/iamagamer/Tree.rar

  其中tree.h是简单的二叉树的实现

posted @ 2011-04-20 22:01  yn_wang  阅读(225)  评论(0编辑  收藏  举报