首页 > 代码库 > 二叉树类

二叉树类

上学期数据结构课上写的一个二叉树类,贴出来,写得不是太好,欢迎高手指点。


struct BiNode//定义节点类型 
{
	char data;
	BiNode *lchild;
	BiNode *rchild;
};
class BiTree
{
	private:
		BiNode *root;
	public:
	BiTree()
	{
		root=NULL;
	}
	~BiTree()
	{
		DeleteTree(root);
	}
	void DeleteTree(BiNode *&node)
	{
		if(node)
		{
			DeleteTree(node->lchild);
			DeleteTree(node->rchild);
			delete node;
		}
	}
	int getHeight()//获取高度 
	{
		return getHeight(root);
	}
	int getHeight(BiNode *node)
	{
		if(node==NULL)
		{
			return 0;
		}
		else
		{
			int lh=getHeight(node->lchild);
			int rh=getHeight(node->rchild);
			return lh>rh?lh+1:rh+1;
		}
	}
	void input()
	{
		input(root);
	}
	void input(BiNode *&node)
	{
		char ch;
		if(cin>>ch)
		{
			if(ch=='#')
			{
				node=NULL;
			}
			else
			{
				node=new BiNode;
				node->data=http://www.mamicode.com/ch;>