数据结构-简单实现二叉树的先序、中序、后序遍历(java)
生活随笔
收集整理的這篇文章主要介紹了
数据结构-简单实现二叉树的先序、中序、后序遍历(java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一步:創建一顆二叉樹
public class Node { private int data;//數據域private Node leftNode;//左孩子private Node rightNode;//右孩子public Node(int data,Node leftNode,Node rightNode) {this.data = data;this.leftNode = leftNode;this.rightNode = rightNode;}public int getData() {return data;}public void setData(int data) {this.data = data;}public Node getLeftNode() {return leftNode;}public void setLeftNode(Node leftNode) {this.leftNode = leftNode;}public Node getRightNode() {return rightNode;}public void setRightNode(Node rightNode) {this.rightNode = rightNode;} }第二步:實現二叉樹的先序、中序、后序遍歷
public class BinaryTree { /*** 二叉樹的先序中序后序排序 */ public Node init() {//注意必須逆序建立,先建立子節點,再逆序往上建立,因為非葉子結點會使用到下面的節點,而初始化是按順序初始化的,不逆序建立會報錯 ,可以自己試驗一下Node J = new Node(8, null, null); Node H = new Node(4, null, null); Node G = new Node(2, null, null); Node F = new Node(7, null, J); Node E = new Node(5, H, null); Node D = new Node(1, null, G); Node C = new Node(9, F, null); Node B = new Node(3, D, E); Node A = new Node(6, B, C); return A; //返回根節點 }//輸出二叉樹節點的值public void printNode(Node node) {System.out.print(node.getData());}//先序遍歷public void theFirstTraversal(Node root) {//先輸出根printNode(root);if(root.getLeftNode()!=null) {theFirstTraversal(root.getLeftNode());}if(root.getRightNode()!=null) {theFirstTraversal(root.getRightNode());}}//中序遍歷public void theInOrderTraversal(Node root) {if(root.getLeftNode()!=null) {theFirstTraversal(root.getLeftNode());}printNode(root);if(root.getRightNode()!=null) {theFirstTraversal(root.getRightNode());}}//后序遍歷public void thePostOrderTraversal(Node root) {if(root.getLeftNode()!=null) {theFirstTraversal(root.getLeftNode());}if(root.getRightNode()!=null) {theFirstTraversal(root.getRightNode());}printNode(root);}public static void main(String[] args) { BinaryTree tree = new BinaryTree(); Node root = tree.init(); System.out.println("先序遍歷"); tree.theFirstTraversal(root); System.out.println(""); System.out.println("中序遍歷"); tree.theInOrderTraversal(root); System.out.println(""); System.out.println("后序遍歷"); tree.thePostOrderTraversal(root); System.out.println(""); } } 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的数据结构-简单实现二叉树的先序、中序、后序遍历(java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate出现org.hiber
- 下一篇: Java for 循环中++i和i++的