//Author:PanDaoxi
#include <iostream>
using namespace std;
struct node{
int left,right; //左孩子和右孩子
char value; //值
}data[101];
int root=0,cnt; //根节点和记录有效字符
char ch; //输入的数据
//构建二叉树
int buildTree(int bt){ //参数:结点的编号
cin>>ch;
if(ch=='.'){ //判断是否为空结点
bt=0; //赋值为0
return bt; //跳出程序
}
else{ //非空结点,进行先序遍历
bt=++cnt; //构造结点
data[bt].value=ch; //存放根的值
data[bt].left=data[bt].right=0; //左右孩子都归零
data[bt].left=buildTree(bt); //递归左子树
data[bt].right=buildTree(bt); //递归右子树
}
return bt; //完成递归
}
//后序遍历二叉树
void postorder(int bt){
if(bt){ //非空结点
//递归输出根
postorder(data[bt].left);
postorder(data[bt].right);
cout<<data[bt].value;
}
}
//先序遍历
void preorder(int bt){
if(bt){
cout<<data[bt].value;
preorder(data[bt].left);
preorder(data[bt].right);
}
}
//中序遍历
void inorder(int bt){
if(bt){
inorder(data[bt].left);
cout<<data[bt].value;
inorder(data[bt].right);
}
}
int main(){
root=buildTree(0); //构建二叉树
cout<<"后序:";
postorder(root);
cout<<endl<<"中序:";
inorder(root);
cout<<endl<<"先序:";
preorder(root);
cout<<endl;
return 0;
}
C++遍历输出二叉树
原创
©著作权归作者所有:来自51CTO博客作者PanDaoxi的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
二叉树 (C++)
二叉树
c++ 算法 数据结构 leetcode 二叉树 -
【二叉树】输出二叉树
题目在一个 m*n 的二维字符串数组中输出二叉树行数 m 应当等于给定二叉树的 高度列数 n 应当总是 奇数根节点 的值(以字符串格式
swift 算法 深度优先 二叉树 子树 -
C++实现二叉树
二叉树的存储及前序遍历、中序遍历、后序遍历、层序遍历等
数据结构 二叉树 -
创建二叉树并遍历二叉树
刚刚接触二叉树的同学一很想学习如何构建一颗简单的二叉树,下面我用C语言来实现一个简单的二叉树,并且用先
二叉树 遍历 先序遍历 中序遍历 后序遍 子树 二叉树 #include