zoukankan      html  css  js  c++  java
  • 二叉树遍历

    题目描述

    编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。

    输入描述:

    输入包括1行字符串,长度不超过100。

    输出描述:

    可能有多组测试数据,对于每组数据,
    输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。
    每个输出结果占一行。
    示例1

    输入

    复制
    abc##de#g##f###
    

    输出

    复制
    c b e g d f a 


    代码:
    #include <iostream>
    #include <string>
    using namespace std;
    struct Node
    {
        char p;
        Node *lchild, *rchild;
        Node(char c) :p(c), lchild(NULL), rchild(NULL){};
    
    };
      string str;
      int  i = 0;
    Node *CreateTree()//构造树
    {
        
            char r = str[i++];
            Node *root = new Node(r);
            if (r == '#')
            {
                return NULL;
    
            }
            
            root->lchild = CreateTree();
            root->rchild = CreateTree();
            return root;
    
    }
    
    
    void  InorderTree(Node *root)
    {
        if (root == NULL)
        {
            return ;
        }
        InorderTree(root->lchild);
        cout << root->p << " ";
        InorderTree(root->rchild);
    }
    int main()
    {
        
        
        while (cin >> str)
        {
            
            Node *root = CreateTree();
            InorderTree(root);
            
        }
        
        system("pause");
        
    }
    View Code
  • 相关阅读:
    Lucene搜索引擎例子demo
    java Log4j日志配置详解大全
    java获取当前上一周、上一月、上一年的时间
    Django组件-cookie与session
    前端基础之jQuery
    Django组件-forms
    Django组件-分页器
    Django-Ajax
    Django模型层-多表操作
    Django模型层-单表操作
  • 原文地址:https://www.cnblogs.com/hequnwang/p/10475447.html
Copyright © 2011-2022 走看看