?? avltreenode.h
字號:
/* AVL 樹結點
* QA Pass
*/
#ifndef AVL_TREENODE_CLASS
#define AVL_TREENODE_CLASS
#include <stdlib.h>
template <class T>
class AVLTree;
template <class T>
class AVLTreeNode
{
protected:
// 指向結點左右孩子的指針
AVLTreeNode<T> *left;
AVLTreeNode<T> *right;
private:
// AVLTreeNode 所需的附加數據成員
int balanceFactor;
public:
// 公有成員,允許外部修改的數據值
T data;
// 構造函數
AVLTreeNode (const T& item, AVLTreeNode<T> *lptr = NULL,
AVLTreeNode<T> *rptr = NULL, int balfac = 0);
// 訪問指針域的函數
AVLTreeNode<T>* Left(void) const;
AVLTreeNode<T>* Right(void) const;
// 訪問新數據域的方法
int GetBalanceFactor(void);
friend class AVLTree<T>;
};
// 構造函數
template <class T>
AVLTreeNode<T>::AVLTreeNode (const T& item,
AVLTreeNode<T> *lptr, AVLTreeNode<T> *rptr, int balfac):
data(item), left(lptr), right(rptr), balanceFactor(balfac)
{}
// 允許用戶訪問左孩子
template <class T>
AVLTreeNode<T>* AVLTreeNode<T>::Left(void) const
{
return left;
}
// 允許用戶訪問右孩子
template <class T>
AVLTreeNode<T>* AVLTreeNode<T>::Right(void) const
{
return right;
}
template <class T>
int AVLTreeNode<T>::GetBalanceFactor(void)
{
return balanceFactor;
}
#endif // AVL_TREENODE_CLASS
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -