Вопрос о бинарном дереве поиска в рекурсивном хранилище - PullRequest
0 голосов
/ 08 декабря 2018

Поскольку это рекурсивный метод, я не могу понять, как использовать эти аргументы stg для хранения данных элемента дерева.Я хочу сохранить stg, чтобы научиться хранить эти строковые данные в рекурсивном методе.Как мне это сделать? (В основном я хочу избавиться от temp1)

Редактировать: я пытался stg + = root.getElement () + "";с возвращением stg;и это не сработало

System.out.println ("обход дерева inOrder:" + inOrder (root, ""));

static String temp1 = "";

public static String inOrder(BinaryTreeNode<String> root, String stg) {
    if (root != null) {

        // recur to left side
        inOrder(root.getLeft(), stg);

        // print the tree element
        temp1 += root.getElement() + " ";

        // recur to right side
        inOrder(root.getRight(), stg);

    }
    stg = temp1;

    return temp1;
} // inOrder

Пример вывода "Обход дерева inOrder: 1 2 3 XYZ xyz"

1 Ответ

0 голосов
/ 08 декабря 2018

Вам не нужен аргумент stg.Вам просто нужно объединить левую сторону, затем текущий элемент, а затем правую сторону:

public static String inOrder(BinaryTreeNode<String> root) {
    if (root == null) {
        return "";
    }

    return inOrder(root.getLeft()) + root.getElement() + inOrder(root.getRight());
}
...