您的位置:首页 > 其它

平衡二叉树(AVL树)的简单实现

2008-07-22 20:33 393 查看
#include <stdlib.h>

template<typename T>

class CAVLTree;

template<typename T>

class CAVLTreeNode

const int LEFTHEAVY = -1;

const int BALANCE = 0;

const int RIGHTHEAVY = 1;

template<typename T>

class CAVLTree

#include "BinSTree.h"

#include <iostream>

#include <stack>

using namespace std;

// Construction/Destruction

template<typename T>

CAVLTree<T>::CAVLTree()

template<typename T>

CAVLTree<T>::CAVLTree(const CAVLTree<T>& tree)

template<typename T>

CAVLTree<T>::~CAVLTree()

template<typename T>

CAVLTree<T>& CAVLTree<T>::operator = (const CAVLTree<T>& rhs)

template<typename T>

CAVLTreeNode<T>* CAVLTree<T>::GetAVLTreeNode(const T& item,CAVLTreeNode<T>* lptr,CAVLTreeNode<T>* rptr)

template<typename T>

CAVLTreeNode<T>* CAVLTree<T>::FindMin()const

template<typename T>

CAVLTreeNode<T>* CAVLTree<T>::FindMax()const

template<typename T>

bool CAVLTree<T>::Contains(const T& item)

template<typename T>

CAVLTreeNode<T>* CAVLTree<T>::CopyTree(CAVLTreeNode<T>* t)

template<typename T>

void CAVLTree<T>::FreeTreeNode(CAVLTreeNode<T>* p)

template<typename T>

void CAVLTree<T>::DeleteTree(CAVLTreeNode<T>* t)

template<typename T>

void CAVLTree<T>::ClearTree()

template<typename T>

CAVLTreeNode<T>* CAVLTree<T>::FindNode(const T& item,CAVLTreeNode<T>* &parent)const

template<typename T>

void CAVLTree<T>::Insert(const T& item)

template<typename T>

void CAVLTree<T>::AVLInsert(CAVLTreeNode<T> * &tree,CAVLTreeNode<T> *newnode,int &reviseBalanceFactor)

template<typename T>

void CAVLTree<T>::PrintTree()

template<typename T>

void CAVLTree<T>::UpdateLeftTree(CAVLTreeNode<T> *&tree, int &reviseBalanceFactor)

template<typename T>

void CAVLTree<T>::SingleRotateRight(CAVLTreeNode<T> *&p)

template<typename T>

void CAVLTree<T>::DoubleRotateRight(CAVLTreeNode<T> *&p)

template<typename T>

void CAVLTree<T>::SingleRotateLeft(CAVLTreeNode<T> *&p)

template<typename T>

void CAVLTree<T>::DoubleRotateLeft(CAVLTreeNode<T> *&p)

template<typename T>

void CAVLTree<T>::UpdateRightTree(CAVLTreeNode<T> *&tree, int &reviseBalanceFactor)

测试代码

#include "BinSTree.cpp"

#include <iostream>

using namespace std;

CAVLTree<int>* MakeSampleTree()

int main(int argc, char* argv[])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: