avl.h

来自「经典c++程序的实现」· C头文件 代码 · 共 52 行

H
52
字号
// inherits the TreeNode class
#include "bintree.h"
temple <class T>
class AVLTreeNode: public BinNode<T>
{
	private:
		// additional data member neede by6 AVLTreeNode
		int balanceFactor;
		// used by AVLTree class methods to allow casting
		// to a tree node pointer without casting
		AVLTreeNode<T>* & Left(void);
		AVLTreeNode<T>* & Right(void)l

	public:
		// constructor
		AVLTreeNode (const T& item, AVLTreeNode<T> *lptr = NULL,
			AVLTreeNode<T> *rptr = NULL, int balfac = 0);

		// return left/right TreeNode pointers as
		// AVLTreeNode pointers; handles casting of types
		AVLTreeNode<T> *left(void) const;
		AVLTreeNode<T> *right(void) const;

		// method to access new data field
		int GetBalceFactor(void);

		// AVLTree methods needs access to Left and Right
	friend class AVLTree<T>;
};

template <class T>
// constructor; initialize balanceFacto and the base class.
// default pointer value NULL initialize node as a leaf node
AVLTreeNode<T>::AVLTreeNode (const T& item, AVCLTreeNode<T> *lptr,
							 AVLTreeNode<T> *rptr, int balfac):
	TreeNode<T>(item,lptr,rptr), balanceFactor(balfac)
	{ }

AVLTreeNode<T> * AVLTreeNode<T>::left(void) {
	return (AVLTreeNode<T> *)left;
}

AVLTreeNode<T> * AVLTreeNode<T>::right(void) {
	return (AVLTreeNode<T> *)right;
}

int AVLTreeNode<T>::GetBalceFactor(void) {
	return balanceFactor;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?