⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avltree.h

📁 这是一个银行账户的管理程序
💻 H
字号:
//this is avl tree class
#include "AVLNode.h"

class avlTree//平衡二叉树类
{
	public:
		avlTree();//构造函数
		~avlTree();//析构函数
		void add(Index value);
		bool remove(Index value);
		void deleteAllValue();
		avlNode* findValue(Index val);
		avlNode* root;
};


avlTree::avlTree():root(0)
{}//建立空树


avlTree::~avlTree()
{
	if (root!=NULL) deleteAllValue();
}

void avlTree::add(Index value)
{//向平衡的avl树添加元素
	if(root==NULL)
		root=new avlNode(value);
	else{
		if(root->findNodeValue(value)!=NULL)
			return;
		root->add(root,value);
	}
}

bool avlTree::remove(Index val)
{//从avl树中删除一个元素
	avlNode* eNode=NULL;
	int flag=0;
	if (root)
		root=root->remove(val,eNode,flag);
	if (eNode)
	{
		delete eNode;
		return true;
	}
	else
		return false;
}

void avlTree::deleteAllValue()
{//删除avl树的全部元素
	if(root!=NULL)
	{
		root->release();
		delete root;
		root=NULL;
	}
}

avlNode* avlTree::findValue(Index val)
{//查找val的节点值
	avlNode* found=root->findNodeValue(val);
	if (found==NULL)
		return NULL;
	else
		return found;
}

⌨️ 快捷键说明

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