您的位置:首页 > 编程语言

二叉树-代码

2020-02-01 00:42 597 查看
#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;
}
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
鱼香虫虫 发布了20 篇原创文章 · 获赞 11 · 访问量 183 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: