?? avltree.h
字號:
//*******三月四號寫于上海交通大學*****,有指教之處請聯系pkzhiwang@gmail.com,本人不承諾都能予以回復//
//判定二叉平衡樹,樹中可以有多個具有相同的數據,但是刪除時只刪除最先遍歷的一個
#ifndef AVLTREE_H
#define AVLTREE_H
#include "avltreenode.h"
template<typename X>
class avlTree
{
private:
avlTreeNode<X> *head,*cursor;
public:
avlTree()
{
cursor=head=0;
}
void insert(X);//增加一個節點
int countDifference(avlTreeNode<X> *);//計算每個節點的平衡因子
void printDifference(avlTreeNode<X> *);//顯示每個節點的平衡因子
avlTreeNode<X>* getHead(){return head;}
avlTreeNode<X>** getHeadAddress(){return &head;}
void traverse(avlTreeNode<X> *);//遍歷平衡二叉樹
void del(X value);//刪除某個節點
private:
void turnRight(avlTreeNode<X> *);
void turnLeft(avlTreeNode<X> *);
void adjust(avlTreeNode<X> *);//調整樹,此調整只能調整只有一處需要調整就可以重新成為平衡二叉樹的樹
avlTreeNode<X>* findTheFirstInBalance(avlTreeNode<X> *);//自底向上找到第一個平衡因為的絕對值為2的節點
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -