Может ли кто-нибудь объяснить, как печатать на глубине 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
Спасибо!