己知一棵二叉树前序遍历和中序遍历分别为 GDAFEMHZ 和 ADEFGHMZ,请画出该二 又树并写出该二叉树的后序遍历?

                    G
                  /    \
                 D     M
                /  \    /  \
               A   F   H   Z
                  /
                 E
后序遍历:AEFDHZMG
#include<bits/stdc++.h>
using namespace std;
struct tree
{
int data; // 树节点数据
tree *l; // 指向左子树的指针
tree * r; // 指向右子树的指针
}void insert_tree(tree *&root, tree *node) //二叉树中插入节点
{
if(root == NULL) root = node;
else{
if(node->data <= root->data)
root->l = node;
else
root->r = node;
}
}
void create_tree(tree *&root) // 创建二叉树
{
int temp;
cout << "input node data(!=-1):";
while(cin >> temp)
{
tree *node;
node->data = temp;
node->l = NULL;
node->r = NULL;
insert_tree(root, node);
cout << "input node data(!=-1):";
}
}
void post_order(tree *root) // 后序遍历
{
if(root != NULL){
post_order(root->l);
cout << root->data;
post_order(root->r);
}
}
int main()
{
tree *root;
create_tree(root); // 创建二叉树
post_order(root); // 后序遍历二叉树
return 0;
}

版权声明:本文为ASDDFFSDS原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>