zoukankan      html  css  js  c++  java
  • 1340:【例3-5】扩展二叉树

    【题目描述】

    由于先序、中序和后序序列中的任一个都不能唯一确定一棵二叉树,所以对二叉树做如下处理,将二叉树的空结点用·补齐,如图所示。我们把这样处理后的二叉树称为原二叉树的扩展二叉树,扩展二叉树的先序和后序序列能唯一确定其二叉树。

    现给出扩展二叉树的先序序列,要求输出其中序和后序序列。

    【输入】

    扩展二叉树的先序序列。

    【输出】

    输出其中序和后序序列。

    【输入样例】

    ABD..EF..G..C..

    【输出样例】

    DBFEGAC
    DFGEBCA

    #include <bits/stdc++.h>
    using namespace std;
    
    struct Node {
        char value;
        Node *left, *right;
    };
    
    Node *CreateTree(const string &pre, int &index)
    {
        if (index < 0 || index >= pre.size() || pre[index] == '.') {
            return NULL;
        } else {
            // cout << pre << "," << in << endl;
            Node *root = new Node;
            root->value = pre[index];
            index += 1;
            root->left = CreateTree(pre, index);
            index += 1;
            root->right = CreateTree(pre, index);
            return root;
        }
    }
    
    string PreOrder(Node *root)
    {
        string s;
        if (root != NULL) {
            s.push_back(root->value);
            s += PreOrder(root->left);
            s += PreOrder(root->right);
        }
        return s;
    }
    
    string InOrder(Node *root)
    {
        string s;
        if (root != NULL) {
            s += InOrder(root->left);
            s.push_back(root->value);
            s += InOrder(root->right);
        }
        return s;
    }
    
    string PostOrder(Node *root)
    {
        string s;
        if (root != NULL) {
            s += PostOrder(root->left);
            s += PostOrder(root->right);
            s.push_back(root->value);
        }
        return s;
    }
    
    int main()
    {
        // freopen("1.txt", "r", stdin);
        string pre, in, post;
        cin >> pre >> in;
        int index = 0;
        Node *root = CreateTree(pre, index);
        // cout << PreOrder(root) << endl;
        cout << InOrder(root) << endl;
        cout << PostOrder(root) << endl;
        return 0;
    }
  • 相关阅读:
    struts2通过配置文件进行数据校验无效
    几个windows使用小技巧
    让程序员抓狂的排序算法教学视频
    关于js中使用close方法无法关闭firefox浏览器
    JavaScript基础
    最全的Java面试宝典
    cookie注入
    Google搜索技巧
    Java之多态
    Winform之GDI绘制验证码
  • 原文地址:https://www.cnblogs.com/gaojs/p/14942190.html
Copyright © 2011-2022 走看看