guts716 Ответов: 0

Может ли кто-нибудь объяснить, как печатать на глубине x в основном методе? Бинарные деревья поиска - java.


Я хочу напечатать ключи на глубине x в моем BST.
Каждый источник, с которым я сталкивался в интернете, написал отдельный метод вне основного метода для решения этой проблемы. У меня также есть третий класс под названием MyTree, который создает BST.

Можно ли все это сделать внутри основного метода?


public class PrintDepth {
    private static int printdepth; // The depth to print all the elements.


    public static void main(String [] args) {
        MyTree T = new MyTree(); // Gets a Tree object.
        TreeNode root = T.getRoot(); // Gets the root of the tree.

        printdepth = 111; // sets the tree to depth 111. 


    }
}


public class TreeNode {
    public int key;
    public TreeNode left;
    public TreeNode right;

    public TreeNode(int _key, TreeNode l, TreeNode r) {
        key = _key;
        left = l;
        right = r;
    }
}


Что я уже пробовал:

Единственное, что я могу напечатать, - это корень.
System.out.print(root.key);

Kris Lantz

Почему вы хотите поместить всю эту информацию только в main, а затем рекурсивно вызвать main()? Разделение на методы - это именно то, как я бы это сделал. Это делает вещи более управляемыми.
Если вы имеете в виду взятие отдельных классов и объединение в один, то это возможно.

guts716

Ладно, это имеет смысл, я пытался использовать другой метод под названием printDistant, и в конструкторе он принимает "узел TreeNode" и целое число, которое содержит уровень глубины, на который я хочу печатать. System.out.println(node.key); и printDistant(node.left, k - 1) ничего не делают. Не могли бы вы дать некоторое представление, пожалуйста?

У меня также есть третий класс под названием MyTree, который создает BST, я забыл изначально упомянуть об этом. Я чувствую, что это слишком долго для публикации.

Kris Lantz

Без знания того, как функционирует весь проект, мое понимание ограничено. Отладчик был бы здесь полезен. Пройдите через него и посмотрите, соответствуют ли значения тому, что вы ожидаете в каждой точке, и идите оттуда.

guts716

Где я могу найти этот отладчик, о котором вы говорите?

Kris Lantz

Что вы используете для программирования на Java?

guts716

затмение

Kris Lantz

О да, у Eclipse есть некоторые варианты отладки. Очень важно научиться им пользоваться, особенно если вы профессионал или занимаетесь этим делом профессионально. Я ежедневно использую отладчик Visual Studio. Я нашел кое-какую информацию об отладчике eclipse. https://www.eclipse.org/community/eclipse_newsletter/2017/june/article1.php

guts716

Спасибо!

0 Ответов