C++使用递归的方法创建二叉树
来源:互联网 发布:变脸僵尸软件下载 编辑:程序博客网 时间:2024/04/30 06:37
#include<iostream>using namespace std;typedef struct node // 创建节点结构{ char data; struct node *lchild,*rchild;}binary_tree,*tree;void creat_tree(tree &t) // 创建二叉树{ char ch; cin >> ch; if( ch == '0' ) // '0'表示没有子树 { t = NULL; } else { t = (tree) new binary_tree; if(!t) exit(0); //如果没成功申请空间 则退出 t->data = ch; creat_tree( t->lchild ); creat_tree( t->rchild ); }}//前序遍历void pre_travel(tree &t) //前序遍历:根结点->左子树->右子树{ if(t) { cout << t->data; //输出节点 pre_travel( t->lchild ); pre_travel( t->rchild ); }}//中续遍历void mid_travel( tree &t ) //中序遍历:左子树->根结点->右子树{ if(t) { pre_travel(t->lchild); cout << t->data; //输出节点 pre_travel( t->rchild ); }}//后续遍历void post_travel(tree &t) //中序遍历:左子树->右子树->根结点{ if(t) { pre_travel( t->lchild ); pre_travel( t->rchild ); cout << t->data; //输出节点 }}int main(){ tree t; //"ab00c00"表示有三个节点,根节点a和它的左右孩子结点b,c, cout << "请输入二叉树节点:(例如输入:AB00C00)"; creat_tree(t); cout << "先续遍历:"; pre_travel(t); cout << endl; cout << "中续遍历:"; mid_travel(t); cout << endl; cout << "后续遍历:"; post_travel(t); cout << endl; system("pause"); return 0;}
本程序创建的二叉树如下:
若想创建以下二叉树,则需输入:ABD00E00C00
0 0
- C++使用递归的方法创建二叉树
- 【C++】二叉树的创建方法及其遍历的递归与非递归方法总结
- 递归方法实现二叉树的创建,遍历
- 二叉树的创建方法【递归】【循环】【插入】
- JAVA语言递归方法创建二叉树
- [C++]数据结构:二叉树中已知先序中序求后序的递归方法
- 二叉树(2)二叉树创建的3种方法,二叉树的递归遍历,二叉树的销毁
- 二叉树(一):二叉树的创建以及三种遍历方法的递归实现
- 递归方法创建二叉树,遍历二叉树
- 二叉树的创建和各种递归非递归遍历方法研究(一)
- 递归创建二叉树
- 二叉树的创建与遍历(递归)
- 二叉树的递归创建&遍历
- 递归的创建和访问二叉树
- 二叉树的创建与其递归遍历
- 二叉树的创建与递归遍历
- 二叉树的创建遍历 递归实现
- 二叉树的非递归创建
- Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)
- java的concurrent用法详解
- 提升深度学习模型的表现,你需要这20个技巧
- HTML+CSS基础 br标签实现换行
- 关于Epoll,你应该知道的那些细节
- C++使用递归的方法创建二叉树
- 计算机网络大题
- Android中获取正在运行的应用程序-----ActivityManager.RunningAppProcessInfo类详解
- 如何读取一行整数到vector
- 【OpenCV学习笔记 012】估算图像间的投影关系
- 6~10
- CodeForces 588 C. Duff and Weight Lifting
- HTML+CSS基础 br标签与p标签的差别
- python挑战之level 18