• 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
广告