C++二叉链表的模板实现
#pragma once
//二叉链表的实现
#include <iostream>
#include <queue>
#include <stack>
using namespace std;
template<Class DataType>
struct BiNode
{
DataType data;
BiNode<DataType> *lchild, *rchild;
};
template<class DataType>
struct ForPost
{
BiNode<DataType> * ptr;
int flag;
};
template<class DataType>
class BiTree
{
public:
BiTree(){ root = Creat(root); }
~BiTree(){ release(root); }
void PreOrder(){ PreOrder(root); }
void InOrder(){ InOrder(root); }
void PostOrder(){ PostOrder(root); }
void LeverOrder();
private:
BiNode<DataType>* root;
BiNode<DataType>* Creat(BiNode<DataType>* bt);
void release(BiNode<DataType>* bt);
void PreOrder(BiNode<DataType>* bt);
void InOrder(BiNode<DataType>* bt);
void PostOrder(BiNode<DataType>* bt);
};
//递归算法
template<class DataType>
void BiTree<DataType>::PreOrder (BiNode<DataType