DS二叉树–后序遍历非递归算法
题目描述
求一颗树的后序遍历的非递归算法
要求:必须是非递归算法,使用堆栈对象来实现
建树方法采用“先序遍历+空树用0表示”的方法
算法流程:

输入
第一行输入一个整数t,表示有t个测试数据
第二行起输入二叉树先序遍历的结果,空树用字符‘0’表示,输入t行
输出
逐行输出每个二叉树的后序遍历结果
样例输入
3
AB0C00D00
ABC00D00EF000
ABCD0000E0F00
样例输出
CBDA
CDBFEA
DCBFEA
#include <iostream>
#include <stack>
using namespace std;
class BiNode{
char data;
int tag;
BiNode *lChild;
BiNode *rChild;
BiNode():lChild(NULL),rChild(NULL){}
BiNode(char e):data(e),lChild(NULL),rChild(NULL){}
friend class BiTree;
};
class BiTree{
BiNode *root;
void createTree(BiNode *&r);
publi
非递归算法实现二叉树后序遍历

该博客介绍了如何使用非递归算法,通过堆栈对象实现二叉树的后序遍历。具体算法流程包括:输入一个整数t表示测试数据数量,然后读取每个二叉树的先序遍历结果,空树用'0'表示。输出为每棵树的后序遍历序列。样例展示了3个测试用例及其对应的后序遍历结果。
最低0.47元/天 解锁文章
594

被折叠的 条评论
为什么被折叠?



