夫のタオゴンは昔
清风
からありますが、あえて彼を男と呼ぶのは誰ですか?
前書き
コンピュータサイエンスでは、二分木(英語:)Binary tree
はノード数が最も多い只有两个分支
ツリー構造です(つまり、分岐次数が2より大きいノードはありません)。ブランチは通常「左子树
」または「右子树
」と呼ばれます。二分木には枝があります左右次序
、不能随意颠倒
。
1つは、ノードクラスを書き込む
一个节点
これは、一个对象
このように作成する必要があることを意味しTreeNode root=new TreeNode(10)
ます。これにより、ルートノードが作成されます。これは単純so easy
で根节点
、値はです10
。10個のノードを作成する必要がある場合(これは種類です小圈圈
)、10個のオブジェクトを作成する必要があります(new 10次
) 。ノードクラスは、次の2つの主要な属性、いずれかを含むleft
と1right
保存する左孩纸
と、それぞれを右孩纸
。それらの中で、valは私が变量
ストレージのためにランダムに取得するもの数据
です。
public class TreeNode {
int val; //数据
TreeNode left; //左孩纸
TreeNode right; // 右孩纸
TreeNode() {
}
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
次に、二分木をトラバースします
プレオーダートラバーサル
public static void preTraversal(TreeNode root) {
if (root != null) {
System.out.println(root.val);
preTraversal(root.left);
preTraversal(root.right);
}
}
インオーダートラバーサル
public static void inTraversal(TreeNode root) {
if (root != null) {
inTraversal(root.left);
System.out.println(root.val);
inTraversal(root.right);
}
}
注文後のトラバーサル
private static void posTraversal(TreeNode root) {
if (root != null) {
posTraversal(root.left);
posTraversal(root.right);
System.out.println(root.val);
}
}
三、木を作る
package com.breez.dsa.tree.demo1;
public class Tree {
public static void preTraversal(TreeNode root) {
...
}
public static void inTraversal(TreeNode root) {
...
}
private static void posTraversal(TreeNode root) {
...
}
public static void main(String[] args) {
TreeNode root = new TreeNode(3);
TreeNode root2 = new TreeNode(9);
TreeNode root3 = new TreeNode(5);
TreeNode root4 = new TreeNode(6);
TreeNode root5 = new TreeNode(15);
TreeNode root6 = new TreeNode(7);
TreeNode root7 = new TreeNode(8);
root.left = root2;
root.right = root3;
root2.left = root4;
root2.right = root5;
root3.left = root6;
root6.left = root7;
System.out.println("=================先序遍历=====================");
preTraversal(root);
System.out.println("=================中序遍历=====================");
inTraversal(root);
System.out.println("=================后序遍历=====================");
posTraversal(root);
}
}
次のコード行を使用して、次の図に示すコードを作成しました。二叉树
root.left = root2;
root.right = root3;
root2.left = root4;
root2.right = root5;
root3.left = root6;
root6.left = root7;
运行结果
:
=================先序遍历=====================
3
9
6
15
5
7
8
=================中序遍历=====================
6
9
15
3
8
7
5
=================后序遍历=====================
6
15
9
8
7
5
3
最後に一言:我太菜了