• Java 資料結構教程

建立二叉樹



樹是一種資料結構,其元素/節點彼此連線,類似於連結串列。但是,與連結串列不同,樹是一種非線性資料結構,其中樹中的每個元素/節點都以分層的方式連線到多個節點。

  • 在樹中,沒有任何前置元素的節點,即樹頂部的節點,稱為根節點。每棵樹只包含一個根節點。

  • 除根節點外的任何節點都有一條向上連線到稱為父節點的節點的邊。

  • 透過其向下連線的邊連線到給定節點下方的節點稱為其子節點

  • 沒有任何子節點的節點稱為葉子節點。

每個節點最多有 0 個、1 個或 2 個子節點(最多 2 個)的樹稱為二叉樹。二叉樹兼具有序陣列和連結串列的優點,因為搜尋速度與排序陣列一樣快,而插入或刪除操作的速度與連結串列一樣快。

Tree Data Structure

在 Java 中建立二叉樹

要建立/實現二叉樹,請建立一個 Node 類,該類將儲存int值並保留對每個子節點的引用,建立三個變數。

兩個 Node 型別的變數用於儲存左節點和右節點,一個整數型別的變數用於儲存資料。然後從另一個類嘗試建立節點,以便在分層方式下,沒有節點應該具有超過 2 個子節點。

示例

以下是在此處建立二叉樹的示例,我們建立了一個 Node 類,其中包含用於資料、左節點和右節點的變數,包括 setter 和 getter 方法來設定和檢索它們的值。

import java.util.LinkedList;
import java.util.Queue;

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 CreatingBinaryTree {
   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("Binary Tree Created Pre-order of its elements is: ");
      preOrder(node);	   
   }
   public static void preOrder(Node root){
      if(root !=null){
         System.out.println(root.data);
         preOrder(root.leftNode);
         preOrder(root.rightNode);    	  
      }
   }
}

輸出

Binary Tree Created Pre-order of its elements is: 
50
60
45
64
60
45
64
廣告

© . All rights reserved.