bitree.h

来自「王红梅编《数据结构》大多数的实验源码。内附详细的实验报告。」· C头文件 代码 · 共 81 行

H
81
字号
#ifndef BiTree_H
#define BiTree_H

template <class T>
struct BiNode
{
	// 结点的数据
	T data;
	// 左孩子和右孩子
	BiNode<T> *lchild, *rchild;
};

template <class T>
class BiTree
{
public:
	/*
	@ BiTree
	前置条件:	二叉树不存在
	输入:		无
	功能:		构造一个新二叉树
	输出:		无
	后置条件:	新的二叉树被构造
	*/
	BiTree();

	/*
	@ ~BiTree
	前置条件:	二叉树存在
	输入:		无
	功能:		析构二叉树
	输出:		无
	后置条件:	二叉树被析构
	*/
	~BiTree();

	/*
	@ CountLeaf
	前置条件:	二叉树存在
	输入:		count (引用)
	功能:		统计叶子个数
	输出:		无
	后置条件:	count值成为了各自个数的值
	*/
	void CountLeaf(int &count);

private:
	/*
	@ Create
	前置条件:	二叉树不存在
	输入:		二叉树的根结点和各个结点的扩展的前序遍历序列
	功能:		建立一个新的二叉树
	输出:		一个新的二叉树
	后置条件:	二叉树被建立
	*/
	BiNode<T> *Create(BiNode<T> *root);

	/*
	@ Release
	前置条件:	二叉树存在
	输入:		根节点
	功能:		递归析构二叉树
	输出:		无
	后置条件:	二叉树被析构
	*/
	void Release(BiNode<T> *root);

	/*
	@ CountLeaf
	前置条件:	二叉树存在
	输入:		根结点,count (引用)
	功能:		统计叶子个数
	输出:		无
	后置条件:	count值成为了各自个数的值
	*/
	void CountLeaf(BiNode<T> *root, int &count);

	BiNode<T> *root;
};

#endif

⌨️ 快捷键说明

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