zoukankan      html  css  js  c++  java
  • POJ 2255 Tree Recovery——二叉树的前序遍历、后序遍历、中序遍历规则(递归)

    1.前序遍历的规则:(根左右)

    (1)访问根节点

    (2)前序遍历左子树

    (3)前序遍历右子树

    对于图中二叉树,前序遍历结果:ABDECF

    2.中序遍历的规则:(左根右)

    (1)中序遍历左子树

    (2)访问根节点

    (3)中序遍历右子树

    对于图中二叉树,中序遍历结果:DBEAFC

    3.后序遍历二叉树的规则:(左右根)

    (1)后序遍历左子树

    (2)后序遍历右子树

    (3)访问根节点

    对于图中二叉树,后序遍历结果:DEBFCA

    例题:POJ2255 给了前、中序遍历,求后序遍历。参考:https://blog.csdn.net/luckcircle/article/details/53327900

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #define MAX 50
     5 using namespace std;
     6 
     7 char a[MAX],b[MAX];
     8 void build(int n,char *a,char *b){
     9     if(n<=0)return;
    10     else{                      //先序根左右 中序左根右 后序左右根
    11         int p=strchr(b,a[0])-b;//先序的第一个节点是根 在中序中找到根
    12         build(p,a+1,b);        //并以此分成左右子串 递归求解
    13         build(n-p-1,a+p+1,b+p+1);
    14         printf("%c",a[0]);
    15     }
    16 }
    17 int main(){
    18     while(scanf("%s %s",a,b)!=EOF){
    19         int n=strlen(a);
    20         build(n,a,b);
    21         printf("
    ");
    22         memset(a,0,sizeof(a));
    23         memset(b,0,sizeof(b));
    24     }
    25 }
  • 相关阅读:
    PhpStorm如何连接外部服务器

    hello,bokeyuan
    pyspark SparkSession及dataframe基本操作
    spark2.2 中文文档
    广告推荐加入图像特征
    docker教程
    DSSM算法-计算文本相似度
    navivate 下载
    save——model模块保存和载入使用简单例子
  • 原文地址:https://www.cnblogs.com/noobimp/p/10321301.html
Copyright © 2011-2022 走看看