Dieser Artikel beschreibt die gemeinsamen Operationen von von Java implementierten binären Bäumen. Teilen Sie es für Ihre Referenz wie folgt weiter:
Import Java.util.Arraydeque; Import Java.util.queue; Import java.util.stack; // Die Erstellung von Binärbäumen, rekursive nicht recursive Traversal-hierarchische Sequenz-Traversal vorne, mittlerer und zurück // Knotenklassenklassenknoten des Knotens {int Element; Knoten links; Knoten recht; public node () {} public node (int element) {this.element = element; }} // BinaryTreepublic Class Tree {// Creat Tree aus Array public static Node CreeTree (int [] data, int i) {if (i> = data.length || data [i] == -1) return null; Knoten temp = neuer Knoten (Daten [i]); temp.left = creatree (Daten, i * 2 + 1); temp.right = creatree (Daten, i * 2 + 2); Temperatur zurückgeben; } // Vorbestellung vorbestellen Traversal rekursiv öffentlich statische void vor (Knoten temp) {if (temp == null) return; System.out.print (temp.element + ""); pre (temp.left); pre (temp.right); } // Mid-Order-Traversal Rekursiv öffentlich statische Leere mittel (Knoten temp) {if (temp == null) return; Mid (temp.left); System.out.print (temp.element + ""); Mitte (temp.Right); } // Letzte Nachauftrags-Traversal rekursiv öffentlich statische Leere letzte (Knoten temp) {if (temp == null) return; last (temp.left); last (temp.right); System.out.print (temp.element + ""); } // Pre1 Pre-Bestelltraversal nicht recursive öffentliche statische void pre1 (Knoten temp) {Stack <node> stack = new Stack <> (); while (temp! = null ||! stack.isempty ()) {while (temp! = null) {stack.push (tempus); System.out.print (temp.element + ""); temp = temp.left; } if (! stack.isempty ()) {temp = stack.pop (). Right; }}} // In-Ordnung-Traversal von MID1 Nicht recursive öffentliche statische void Mid1 (Knoten temp) {Stack <node> stack = new Stack <> (); while (temp! = null ||! stack.isempty ()) {while (temp! = null) {stack.push (tempus); temp = temp.left; } if (! stack.isempty ()) {temp = stack.pop (); System.out.print (temp.element + ""); Temp.Right; }}} // last1 postbestelltraversal nicht recursive public static void last1 (Knoten temp) {stack <node> stack = new Stack <> (); Stack <node> stack2 = neuer stack <> (); while (temp! = null ||! stack.isempty ()) {while (temp! = null) {stack.push (tempus); stack2.push (temp); temp = temp.right; } if (! stack.isempty ()) {temp = stack.pop (). links; }} while (! stack2.isempty ()) system.out.print (stack2.pop (). element + ""); } // Ceng Layer Sequence Traversal public static void ceng (Knoten temp) {if (temp == null) return; Queue <node> queue = new ArrayDeque <> (); queue.offer (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); }} // Demo public static void main (String [] args) {int [] array = {1, 2, 3, 4, 5, 6, 7, -1, -1, 10, -1, -1, 13}; Node Tree = CreeTree (Array, 0); System.out.println ("Wulin.com Testergebnisse:"); vor (Baum); System.out.println (); Pre1 (Baum); System.out.println (); mittlerer (Baum); System.out.println (); Mid1 (Baum); System.out.println (); Mid1 (Baum); System.out.println (); letztes (Baum); System.out.println (); last1 (Baum); System.out.println (); Ceng (Baum); }}Auslaufergebnisse:
Für weitere Informationen zu Java -Algorithmen können Leser, die an dieser Website interessiert sind, die Themen "Java -Datenstruktur und Algorithmus -Tutorial", "Zusammenfassung der Java -Operation DOM -Knoten -Tipps", "Zusammenfassung der Java -Datei- und Verzeichnisoperationstipps" und "Zusammenfassung der Java -Cache -Operation Tipps" anzeigen
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.