210812
Today I learned..
今日学習したコンテンツソース
Source
今日,Javaを用いて簡単なバイナリツリー構造を実現した.
木。
木とは何ですか.
データ構造(接続リストや配列など)は線形構造(データを一列にリスト)であり、ツリー(その名の通り)はサブノードがルートノード(ルートノード)上で枝や葉のように伝播する構造である.
様々な構造があり、その中で今日はバイナリツリー構造が実現されています.(ツリー構造の各ノードには少なくとも2つのサブノードがあります)
class TreeNode {
private TreeNode left;
private TreeNode right;
private Object data;
public TreeNode(Object item) {
left = null;
right = null;
this.data = item;
}
public void addLeftSubTree(TreeNode sub) {
if (this.left != null) return;
this.left = sub;
}
public void addRightSubTree(TreeNode sub) {
if (this.right != null) return;
this.right = sub;
}
public Object getData() {
return this.data;
}
public TreeNode getLeftSubTree() {
return this.left;
}
public TreeNode getRightSubTree() {
return this.right;
}
}
// 메인 메소드
public static void main(String[] args) {
TreeNode node1 = new TreeNode(1);
TreeNode node2 = new TreeNode(2);
TreeNode node3 = new TreeNode(3);
TreeNode node4 = new TreeNode(4);
TreeNode node5 = new TreeNode(5);
TreeNode node6 = new TreeNode(6);
TreeNode node7 = new TreeNode(7);
// 트리 연결
node1.addLeftSubTree(node2);
node1.addRightSubTree(node3);
node2.addLeftSubTree(node4);
node2.addRightSubTree(node5);
node3.addLeftSubTree(node6);
node3.addRightSubTree(node7);
}
左ノードと右ノードの値をクラスとして保存し、サブノードを各ノードに接続すると完了します.😄ツリー巡り
もちろん、このような木は何の意味もありません.私たちは探求します.ナビゲーションは簡単に後列、中列、前列巡回ナビゲーションに分けられます.ルート・ディレクトリから開始すると、各ナビゲーション・メソッドには次の特徴があります.
/**
* 전위 순회
* @param node
*/
static void preOrder(TreeNode node) {
if (node == null) return;
System.out.format(" %s ", node.getData());
preOrder(node.getLeftSubTree());
preOrder(node.getRightSubTree());
}
/**
* 중위 순회
* @param node
*/
static void inOrder(TreeNode node) {
if (node == null) return;
inOrder(node.getLeftSubTree());
System.out.format(" %s ", node.getData());
inOrder(node.getRightSubTree());
}
/**
* 후위 순회
* @param node
*/
static void postOrder(TreeNode node) {
if (node == null) return;
postOrder(node.getLeftSubTree());
postOrder(node.getRightSubTree());
System.out.format(" %s ", node.getData());
}
Tomorrow I will learn..
Comment
Reference
この問題について(210812), 我々は、より多くの情報をここで見つけました https://velog.io/@kcdevdes/TIL-210812テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol