gpt4 book ai didi

先序遍历二叉树

转载 作者:知者 更新时间:2024-03-12 23:24:18 26 4
gpt4 key购买 nike

一 问题描述

输入一颗二叉树,输出其先序遍历的序列。

二 输入和输出

1 输入

第1行为二叉树的节点数 n,后面的 n 行,以每一个字母为节点,后两个字母分别为其左、右孩子。空节点用 * 表示。

2 输出

输出二叉树的先序序列。

三 样例

输入样例
6

abc

bdi

cj*

d**

i**

j**

输出样例

abdicj

四 思路

可用静态存储方式,存储每个节点的左、右孩子,然后按先序遍历顺序输出。

五 代码

package tree;

import java.util.Scanner;

public class P1305 {
    private static int root;
    private static int l[] = new int[100];
    private static int r[] = new int[100];

    // 先序遍历
    static void preorder(int t) {
        if (t != '*' - 'a') {
            System.out.print((char) ('a' + t));
            preorder(l[t]);
            preorder(r[t]);
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        for (int i = 0; i < n; i++) {
            String s = scanner.next();
            if (i == 0) {
                root = s.charAt(0) - 'a';
            }
            l[s.charAt(0) - 'a'] = s.charAt(1) - 'a';
            r[s.charAt(0) - 'a'] = s.charAt(2) - 'a';
        }
        preorder(root);
    }
}

六 测试

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com