平衡二叉树(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[])
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[])
相关文章推荐
- 平衡二叉树(AVL树)的简单实现
- 平衡二叉树(AVL树)一图一步骤代码实现左旋右旋,左右平衡操作
- 平衡二叉树---AVL树的实现
- AVL树的简单实现
- 平衡二叉树(AVL树)的实现
- Java实现平衡二叉树(AVL树)
- AVL树的简单实现
- AVL树插入的简单实现
- 自己实现一个简单的AVL树
- C++实践笔记(四)----AVL树的简单实现
- 平衡二叉树——AVL树的实现
- golang实现高度平衡二叉树(AVL树)
- AVL树的旋转图解和简单实现
- 平衡二叉树(AVL树)算法 Java实现
- java数据结构与算法之平衡二叉树(AVL树)的设计与实现
- AVL树的旋转图解和简单实现
- java数据结构与算法之平衡二叉树(AVL树)的设计与实现
- 平衡二叉树——AVL树的原理和实现
- 数据结构之 AVL树(平衡二叉树)(C语言实现)
- 一个简单的AVL树实现