#include <iostream >
using namespace std;
struct BiNode
{
int data;
BiNode* rchild;
BiNode* lchild;
};
class BiTree
{
public:
BiTree() { root = Creat(); }
~BiTree() { Release(root); }
void PreOrder() { PreOrder(root); }
void PostOrder() { PostOrder(root); }
void InOrder() { InOrder(root); }
void geth();
private:
BiNode* root;
BiNode* Creat();
void Release(BiNode* bt);
void PreOrder(BiNode* bt);
void InOrder(BiNode* bt);
void PostOrder(BiNode* bt);
};
BiNode* BiTree::Creat()
{
char ch;
BiNode* bt;
cin >> ch;
if (ch == '#')
bt = nullptr;
else
{
bt = new BiNode;
bt->data = ch;
bt->lchild=Creat();
bt->rchild=Creat();
}
return bt;
}
void BiTree::PreOrder(BiNode* bt)
{
if (bt == nullptr)
return;
else
{
cout << bt->data<<" ";
PreOrder(bt->lchild);
PreOrder(bt->rchild);
}
}
void BiTree::InOrder(BiNode* bt)
{
if (bt == nullptr)
return;
else
{
InOrder(bt->lchild);
cout << bt->data << " ";
InOrder(bt->rchild);
}
}
void BiTree::PostOrder(BiNode* bt)
{
if (bt == nullptr)
return;
else
{
PostOrder(bt->lchild);
PostOrder(bt->rchild);
cout << bt->data << " ";
}
}
void BiTree::Release(BiNode* bt)
{
if (bt == nullptr)
return;
else
{
Release(bt->lchild);
Release(bt->rchild);
delete bt;
}
}
二叉树-代码
最新推荐文章于 2023-04-24 20:21:24 发布