• 二叉树的序遍历


    题目描述

        求一棵二叉树的前序遍历,中序遍历和后序遍历。

    输入输出格式

    输入描述:

    第一行一个整数n,表示这棵树的节点个数。

    接下来n行每行2个整数L和R。第i行的两个整数Li和Ri代表编号为i的节点的左儿子编号和右儿子编号。

    输出描述:

    输出一共三行,分别为前序遍历,中序遍历和后序遍历。编号之间用空格隔开。

    输入输出样例

    输入样例#1:

    5

    2 3

    4 5

    0 0

    0 0

    0 0

    输出样例#1:

    1 2 4 5 3

    4 2 5 1 3

    4 5 2 3 1

    思路

    递归。先写好先序,再将先序略微改动,复制粘贴三遍即可。

    代码

    #include<stdio.h>
    int a[100],b[100];
    void A(int i)
    {
        printf("%d ",i);
        if(a[i])
          A(a[i]);
        if(b[i])
          A(b[i]);
    }
    void B(int i)
    {
        if(a[i])
          B(a[i]);
        printf("%d ",i);  
        if(b[i])
          B(b[i]);
    }
    void C(int i)
    {
        if(a[i])
          C(a[i]);
        if(b[i])
          C(b[i]);
        printf("%d ",i);
    }
    int main()
    {
        int n,i;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
           scanf("%d%d",&a[i],&b[i]);
        A(1);
        printf("
    ");
        B(1);
        printf("
    ");
        C(1);
        return 0;
    }
    View Code
  • 相关阅读:
    P3224 [HNOI2012]永无乡(平衡树合并)
    jquery的队列问题
    值得以后看的东西
    js的>>>
    js的set和get
    js数组的操作方法
    中文冒号检查了两个小时
    setintervalue传参数的三种方法
    js轮训
    npm全局安装
  • 原文地址:https://www.cnblogs.com/soul-love/p/5271461.html
Copyright © 2020-2023  润新知