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

📄 avltree.h

📁 平衡二叉树的建立,增加,删除,有问题还可以请联系我,联系方式在程序中.
💻 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 + -