#include<iostream>
using namespace std;
template<class T>
struct Binode
{
T data;
Binode<T> *lchild,*rchild;//左右孩子结点
};
template<class T>
class Bitree{
public:
Bitree(){root=Creat(root);}//构造函数,建立一颗二叉树
~Bitree(){Release(root);}//析构函数,释放各结点的存储空间
void Preorder(){Preorder(root);}//前序遍历函数
void Inorder(){Inorder(root);}//中序遍历函数
void Postorder(){Postorder(root);}//后序遍历函数
void PrintPC(){PrintPC(root,NULL);}//打印结点的双亲和孩子信息函数
void Printleaf(){Printleaf(root);}//打印叶子结点信息函数
private:
Binode<T> *root;//指向根结点的头指针
Binode<T> *Creat(Binode<T> *bt);//构造函数调用
void Release(Binode<T> *bt);//析构函数调用
void Preorder(Binode<T> *bt);//前序遍历函数调用
void Inorder(Binode<T> *bt);//中序遍历函数调用
void Postorder(Binode<T> *bt);//后序遍历函数调用
void PrintPC(Binode<T> *bt,Binode<T> *pr);//打印结点的双亲和孩子信息函数调用
void Printleaf(Binode<T> *bt);//打印叶子结点信息函数调用
};
template<class T>
Binode<T&g
树和二叉树的链式存储实现
最新推荐文章于 2024-04-08 21:53:48 发布