В этой статье описываются общие операции бинарных деревьев, реализованных Java. Поделитесь этим для вашей ссылки, следующим образом:
Импорт java.util.arraydeque; импортировать java.util.queue; import java.util.stack; // Создание двоичных деревьев, рекурсивное нерекурсивное иерархическое обход иерархического последовательности спереди, среднего и обратного // узла узла узла {int; Узел остался; Узел правильно; public node () {} public node (int element) {this.element = element; }} // BinaryTreepublic Class Tree {// Создать дерево из массива общедоступного статического узла creatree (int [] data, int i) {if (i> = data.length || data [i] == -1) return null; Узел Temp = новый узел (Data [i]); temp.left = coretree (данные, i * 2 + 1); temp.right = coretree (данные, i * 2 + 2); вернуть температуру; } // Предварительное предварительное заказа System.out.print (temp.element + ""); pre (temp.left); pre (temp.right); } // Средний обход рекурсивного общественного статического void mid (node temp) {if (temp == null) return; середина (temp.left); System.out.print (temp.element + ""); середина (Temp.right); } // Последний пост-заказ пересекает рекурсивный статический статический void Последний (Temp.left); Последний (Temp.right); System.out.print (temp.element + ""); } // Предварительный предварительный заказ Тровельный нерекурсивный статический статический void pre1 (node temp) {stack <node> стек = new Stack <> (); while (temp! = null ||! Stack.isempty ()) {while (temp! = null) {Stack.push (temp); System.out.print (temp.element + ""); temp = temp.left; } if (! Stack.isempty ()) {temp = Stack.pop (). }}} // обход в заказе нерекурсивного общественного статического void mid1 (temp Node) {Stack <node> Stack = new Stack <> (); while (temp! = null ||! Stack.isempty ()) {while (temp! = null) {Stack.push (temp); temp = temp.left; } if (! Stack.isempty ()) {temp = Stack.pop (); System.out.print (temp.element + ""); Temp.right; }}} // Последний 1 пост-заказ нерекурсивный общедоступный статический void last1 (node temp) {Stack <node> Stack = new Stack <> (); Stack <node> Stack2 = новый стек <> (); while (temp! = null ||! Stack.isempty ()) {while (temp! = null) {Stack.push (temp); Stack2.push (Temp); temp = temp.right; } if (! Stack.isempty ()) {temp = Stack.pop (). }} while (! Stack2.isempty ()) System.out.print (stack2.pop (). element + ""); } // последовательность слоя ceng public static void ceng (node temp) {if (temp == null) return; Queue <node> queue = new Arraydeque <> (); queue.ffer (temp); while (! queue.isempty ()) {temp = queue.poll (); System.out.print (temp.element + ""); if (temp.left! = null) queue.offer (temp.left); if (temp.right! = null) queue.offer (temp.right); }} // демо открывая статическая void main (string [] args) {int [] array = {1, 2, 3, 4, 5, 6, 7, -1, -1, 10, -1, -1, 13}; Node Tree = coretree (массив, 0); System.out.println ("wulin.com Результаты теста:"); pre (дерево); System.out.println (); pre1 (дерево); System.out.println (); средняя (дерево); System.out.println (); Mid1 (дерево); System.out.println (); Mid1 (дерево); System.out.println (); Последний (дерево); System.out.println (); Last1 (дерево); System.out.println (); ceng (дерево); }}Результаты работы:
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.