色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java生成和遍歷二叉樹

李佳璐1年前5瀏覽0評論

在Java中生成和遍歷二叉樹是一項非常重要的操作。二叉樹是一種非常有用的數據結構,可以被用來表示許多不同的問題。在Java中,我們可以使用類來表示二叉樹,然后使用不同的遍歷算法來遍歷它。這篇文章將向大家介紹如何使用Java生成和遍歷二叉樹。

// 定義二叉樹節點類
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
this.left = null;
this.right = null;
}
}
// 定義二叉樹類
class BinaryTree {
TreeNode root;
BinaryTree() {
this.root = null;
}
// 插入節點
public void insert(int val) {
TreeNode node = new TreeNode(val);
if (root == null) {
root = node;
return;
}
Queuequeue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode curr = queue.poll();
if (curr.left == null) {
curr.left = node;
return;
} else {
queue.offer(curr.left);
}
if (curr.right == null) {
curr.right = node;
return;
} else {
queue.offer(curr.right);
}
}
}
// 先序遍歷
public void preOrder(TreeNode node) {
if (node != null) {
System.out.print(node.val + " ");
preOrder(node.left);
preOrder(node.right);
}
}
// 中序遍歷
public void inOrder(TreeNode node) {
if (node != null) {
inOrder(node.left);
System.out.print(node.val + " ");
inOrder(node.right);
}
}
// 后序遍歷
public void postOrder(TreeNode node) {
if (node != null) {
postOrder(node.left);
postOrder(node.right);
System.out.print(node.val + " ");
}
}
}
// 測試代碼
public class Main {
public static void main(String[] args) {
BinaryTree binaryTree = new BinaryTree();
binaryTree.insert(1);
binaryTree.insert(2);
binaryTree.insert(3);
binaryTree.insert(4);
binaryTree.insert(5);
System.out.println("前序遍歷:");
binaryTree.preOrder(binaryTree.root);
System.out.println();
System.out.println("中序遍歷:");
binaryTree.inOrder(binaryTree.root);
System.out.println();
System.out.println("后序遍歷:");
binaryTree.postOrder(binaryTree.root);
System.out.println();
}
}

我們定義了一個TreeNode類來表示二叉樹中的節點,它包含了一個整數值和左右節點的引用。我們還定義了一個BinaryTree類來表示整個二叉樹,它包含了一個指向根節點的引用,以及上面提到的insert、preOrder、inOrder和postOrder方法。這些方法分別用于向二叉樹中插入節點、進行先序遍歷、中序遍歷和后序遍歷。

在測試代碼中,我們創建了一個二叉樹,并對其進行了插入節點操作,然后分別調用了三個遍歷方法來遍歷這個二叉樹。

總的來說,Java生成和遍歷二叉樹并不是一件太難的事情??梢允褂靡粋€類來表示二叉樹中的節點,然后使用不同的遍歷算法來遍歷這個二叉樹。這篇文章提供了一些示例代碼來幫助大家理解二叉樹的生成和遍歷。