• Java 資料結構教程

樹的中序遍歷



在這種遍歷方法中,先訪問左子樹,然後訪問根節點,最後訪問右子樹。我們應該始終記住,每個節點都可以表示一個子樹本身。

如果二叉樹以中序方式遍歷,則輸出將生成按升序排序的鍵值。

In-order Traversal Tree

我們從A開始,按照中序遍歷,移動到它的左子樹BB也以中序方式遍歷。此過程持續進行,直到訪問所有節點。這棵樹的中序遍歷的輸出將為:

D → B → E → A → F → C → G

演算法

直到所有節點都被遍歷:

Step 1: Recursively traverse left subtree.
Step 2: Visit root node.
Step 3: Recursively traverse right subtree.

示例

class Node{
   int data;
   Node leftNode, rightNode;
   
   Node() {
      leftNode = null;
      rightNode = null;     
      this.data = data;
   }
   Node(int data) {
      leftNode = null;
      rightNode = null;     
      this.data = data;
   }
   int getData() {
      return this.data;	   
   }
   Node getleftNode() {
      return this.leftNode;      
   }
   Node getRightNode() {
      return this.leftNode;      
   }
   void setData(int data) {
      this.data = data; 
   }
   void setleftNode(Node leftNode) {
      this.leftNode = leftNode;      
   }
   void setRightNode(Node rightNode) {
      this.leftNode = rightNode;         
   }
}
public class InOrderBinaryTree {
   public static void main(String[] args) {
      Node node = new Node(50);
      node.leftNode = new Node(60);
      node.leftNode.leftNode = new Node(45);
      node.leftNode.rightNode = new Node(64);

      node.rightNode = new Node(60);
      node.rightNode.leftNode = new Node(45);
      node.rightNode.rightNode = new Node(64);
      System.out.println("inorder arrangement of given elements: ");
      inOrder(node);
   }
   public static void inOrder(Node root) {
      if(root !=null) {
         inOrder(root.leftNode);
         System.out.println(root.data);
         inOrder(root.rightNode);         
      }
   }
}

輸出

inorder arrangement of given elements: 
45
60
64
50
45
60
64
廣告
© . All rights reserved.