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

📄 btree.h

📁 关于数据结构中二叉树的实验源代码
💻 H
字号:
// BTree.cpp : Defines the entry point for the console application.
//

#include "iostream.h"



template<class T>
class BTree;

template<class T>
class BTNode
{
	friend class BTree<T>;
	friend void Visit(BTNode<T> *p);
	friend BTNode<T>* Find(BTNode<T>* &root,T item);
	private:
		T element;
		BTNode<T> *lc,*rc;
	public:
		BTNode(){lc=rc=NULL;}
		BTNode(const T e)//////////////////////构造函数
		{
			element=e;
			lc=rc=NULL;
		}
		BTNode(const T e,BTNode<T> *l,BTNode<T> *r)//////////////////////构造函数
		{
			element=e;
			lc=l;
			rc=r;
		}
		BTNode<T>* &Left(void)////////////////////////////////返回左指针
		{ return lc; }
		BTNode<T>* &Right(void)//////////////////////////////返回右指针
		{ return rc; }
};

template<class T>
void Visit(BTNode<T> *p)////////////////返回p所指的结点
{
	cout<<p->element<<"  ";
}

template<class T>
class BTree
{
	private:
		BTNode<T> *root;
		void PreOrder(BTNode<T> *t);
		void InOrder(BTNode<T> *t);
		void PostOrder(BTNode<T> *t);
	public:
		BTree(void){root=NULL;}//////////////////////构造函数
		BTree(BTNode<T> *p){root=p;}//////////////////////构造函数
		~BTree(){}
		int IsEmpty()const;/////////////////////////////////判定树是否为空
		T Root(void)const;/////////////////////////////返回根接点
		void PreOrder(void)///////////////////////////////先根序列
		{ PreOrder(root);}///////////////////////中根序列
		void InOrder(void)
		{ InOrder(root);}
		void PostOrder(void)
		{ PostOrder(root);}
		BTNode<T>* &BTRoot(void)
		{return root;} 

};

template<class T>
int BTree<T>::IsEmpty()const
{
	return root==NULL;
}

template<class T>
T BTree<T>::Root(void)const
{
	if IsEmpty() return 0;
	return root->element;
}

template<class T>
void BTree<T>::PreOrder(BTNode<T> *t)
{
	if(t!=NULL)
	{
		Visit(t);
		PreOrder(t->lc);
		PreOrder(t->rc);
	}
}

template<class T>
void BTree<T>::InOrder(BTNode<T> *t)
{
	if(t!=NULL)
	{
		InOrder(t->lc);
		Visit(t);
		InOrder(t->rc);
	}
}

template<class T>
void BTree<T>::PostOrder(BTNode<T> *t)
{
	if(t!=NULL)
	{
		PostOrder(t->lc);
		PostOrder(t->rc);
		Visit(t);
	}
}

⌨️ 快捷键说明

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