二叉树-代码
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; } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- java编程求二叉树最大路径问题代码分析
- 整理大二数据结构代码之二叉树的遍历
- 二叉树的先序、中序、后序的递归、非递归的C++代码
- 打印二叉树的边界节点-代码指南
- 二叉树的前序遍历,中序遍历,后序遍历代码
- JAVA六种遍历二叉树代码
- java代码构建一棵二叉树(二叉查找树)
- 二叉树代码实现笔记
- 循环遍历二叉树代码实例
- 求二叉树的最大高度完整代码C++
- Binary Tree Paths 二叉树的路径(含创建树的代码)
- 剑指 offer代码解析——面试题39二叉树的深度
- 用Java代码写一个判断两个二叉树是否相同
- 二叉树的遍历(代码递归和数据递归)
- #牛客#代码实现:二叉树的序列与反序、逆栈、链表回文、MaxTree
- new 按之字形顺序打印二叉树 代码只是看懂没敲
- 图解二叉树的三种遍历方式及java实现代码
- 二叉树的代码实现
- 二叉树代码实现与详解--(C++版)
- 小代码 二叉树 添加树状打印及倒立打印