From 80950402bb3f90b3cff3bef28708c2a80e5dd782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=91=BB=E5=BF=94=E6=AA=BD=E9=91=BD=3F?= <1443874734@qq.com> Date: Mon, 23 Nov 2020 19:44:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BinaryTree.java" | 45 +++++++++++ .../Main.java" | 29 +++++++ .../Node.java" | 11 +++ .../delete_BST.txt" | 77 +++++++++++++++++++ .../node.txt" | 57 ++++++++++++++ .../search_BST.txt" | 19 +++++ .../BinaryTree.java" | 43 +++++++++++ .../Main.java" | 29 +++++++ .../Node.java" | 11 +++ .../BinaryTree.java" | 45 +++++++++++ .../Main.java" | 29 +++++++ .../Node.java" | 11 +++ .../FloorPrint_QUEUE.java" | 47 +++++++++++ .../Main.java" | 29 +++++++ .../Node.java" | 11 +++ 15 files changed, 493 insertions(+) create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/BinaryTree.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/Main.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/Node.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/delete_BST.txt" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/node.txt" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/search_BST.txt" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/BinaryTree.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/Main.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/Node.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/BinaryTree.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/Main.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/Node.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/FloorPrint_QUEUE.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/Main.java" create mode 100644 "20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/Node.java" diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/BinaryTree.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/BinaryTree.java" new file mode 100644 index 0000000..b930e43 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/BinaryTree.java" @@ -0,0 +1,45 @@ +import java.util.Queue; +import java.util.LinkedList; + +public class BinaryTree { + public Node root; + + BinaryTree(){ + root = null; + } + + void insert(T val){} + + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 10 5 3 7 15 12 20 + */ + public void preOrder(){ + preOrderTraversal(root); + } + + private void preOrderTraversal(Node tree){ + if(tree != null) { + // root.value // 10 打印自身 + + + // 打印10左子树 + preOrderTraversal(tree.left); + // root.left.value // 5 + // root.left.left.value // 3 + // root.left.right.value // 7 + + System.out.print(tree.value); + System.out.print(" "); + + // 打印右子树 + preOrderTraversal(tree.right); + // root.right.value // 15 + // root.right.left.value // 12 + // root.right.right.value // 20 + } + } +} + diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/Main.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/Main.java" new file mode 100644 index 0000000..6248583 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/Main.java" @@ -0,0 +1,29 @@ +class Main { + public static void main(String[] args){ + // 构造了一个空树 + BinaryTree bt = new BinaryTree(); + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 10 5 3 7 15 12 20 + */ + bt.root = new Node(10); + Node left1 = new Node(5); + bt.root.left = left1; + Node right1 = new Node(15); + bt.root.right = right1; + + Node left21 = new Node(3); + left1.left = left21; + Node left22 = new Node(7); + left1.right = left22; + + Node left23 = new Node(12); + Node left24 = new Node(20); + right1.left = left23; + right1.right = left24; + + bt.preOrder(); + } +} \ No newline at end of file diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/Node.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/Node.java" new file mode 100644 index 0000000..aa36154 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\270\255\345\272\217\351\201\215\345\216\206/Node.java" @@ -0,0 +1,11 @@ +public class Node { + public T value; + public Node left; + public Node right; + + Node(T val){ + value = val; + left = null; + right = null; + } +} diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/delete_BST.txt" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/delete_BST.txt" new file mode 100644 index 0000000..e684f92 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/delete_BST.txt" @@ -0,0 +1,77 @@ +bool delete_BST(pnode p, int x) //杩斿洖涓涓爣蹇楋紝琛ㄧず鏄惁鎵惧埌琚垹鍏冪礌 +{ + bool find = false; + pnode q; + p = BT; + while(p && !find){ //瀵绘壘琚垹鍏冪礌 + if(x == p->val){ //鎵惧埌琚垹鍏冪礌 + find = true; + } + else if(x < p->val){ //娌垮乏瀛愭爲鎵 + q = p; + p = p->lchild; + } + else{ //娌垮彸瀛愭爲鎵 + q = p; + p = p->rchild; + } + } + if(p == NULL){ //娌℃壘鍒 + cout << "娌℃湁鎵惧埌" << x << endl; + } + + if(p->lchild == NULL && p->rchild == NULL){ //p涓哄彾瀛愯妭鐐 + if(p == BT){ //p涓烘牴鑺傜偣 + BT = NULL; + } + else if(q->lchild == p){ + q->lchild = NULL; + } + else{ + q->rchild = NULL; + } + free(p); //閲婃斁鑺傜偣p + } + else if(p->lchild == NULL || p->rchild == NULL){ //p涓哄崟鏀瓙鏍 + if(p == BT){ //p涓烘牴鑺傜偣 + if(p->lchild == NULL){ + BT = p->rchild; + } + else{ + BT = p->lchild; + } + } + else{ + if(q->lchild == p && p->lchild){ //p鏄痲鐨勫乏瀛愭爲涓攑鏈夊乏瀛愭爲 + q->lchild = p->lchild; //灏唒鐨勫乏瀛愭爲閾炬帴鍒皅鐨勫乏鎸囬拡涓 + } + else if(q->lchild == p && p->rchild){ + q->lchild = p->rchild; + } + else if(q->rchild == p && p->lchild){ + q->rchild = p->lchild; + } + else{ + q->rchild = p->rchild; + } + } + free(p); + } + else{ //p鐨勫乏鍙冲瓙鏍戝潎涓嶄负绌 + pnode t = p; + pnode s = p->lchild; //浠巔鐨勫乏瀛愯妭鐐瑰紑濮 + while(s->rchild){ //鎵惧埌p鐨勫墠椹憋紝鍗硃宸﹀瓙鏍戜腑鍊兼渶澶х殑鑺傜偣 + t = s; + s = s->rchild; + } + p->val = s->val; //鎶婅妭鐐箂鐨勫艰祴缁檖 + if(t == p){ + p->lchild = s->lchild; + } + else{ + t->rchild = s->lchild; + } + free(s); + } + return find; +} \ No newline at end of file diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/node.txt" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/node.txt" new file mode 100644 index 0000000..06ea79c --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/node.txt" @@ -0,0 +1,57 @@ +View Code +struct node +{ +int val; + pnode lchild; + pnode rchild; +}; + +pnode BT = NULL; + + +//閫掑綊鏂规硶鎻掑叆鑺傜偣 +pnode insert(pnode root, int x) +{ + pnode p = (pnode)malloc(LEN); + p->val = x; + p->lchild = NULL; + p->rchild = NULL; +if(root == NULL){ + root = p; + } +else if(x < root->val){ + root->lchild = insert(root->lchild, x); + } +else{ + root->rchild = insert(root->rchild, x); + } +return root; +}View Code +struct node +{ +int val; + pnode lchild; + pnode rchild; +}; + +pnode BT = NULL; + + +//閫掑綊鏂规硶鎻掑叆鑺傜偣 +pnode insert(pnode root, int x) +{ + pnode p = (pnode)malloc(LEN); + p->val = x; + p->lchild = NULL; + p->rchild = NULL; +if(root == NULL){ + root = p; + } +else if(x < root->val){ + root->lchild = insert(root->lchild, x); + } +else{ + root->rchild = insert(root->rchild, x); + } +return root; +} \ No newline at end of file diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/search_BST.txt" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/search_BST.txt" new file mode 100644 index 0000000..5c0cd5d --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\344\272\214\345\217\211\346\237\245\346\211\276\346\240\221\347\232\204\346\217\222\345\205\245\345\210\240\351\231\244\346\237\245\346\211\276\346\223\215\344\275\234/search_BST.txt" @@ -0,0 +1,19 @@ +pnode search_BST(pnode p, int x) +{ + bool solve = false; + while(p && !solve){ + if(x == p->val){ + solve = true; + } + else if(x < p->val){ + p = p->lchild; + } + else{ + p = p->rchild; + } + } + if(p == NULL){ + cout << "娌℃湁鎵惧埌" << x << endl; + } + return p; +} \ No newline at end of file diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/BinaryTree.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/BinaryTree.java" new file mode 100644 index 0000000..569f96c --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/BinaryTree.java" @@ -0,0 +1,43 @@ +import java.util.Queue; +import java.util.LinkedList; + +public class BinaryTree { + public Node root; + + BinaryTree(){ + root = null; + } + + void insert(T val){} + + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 10 5 3 7 15 12 20 + */ + public void preOrder(){ + preOrderTraversal(root); + } + + private void preOrderTraversal(Node tree){ + if(tree != null) { + // root.value // 10 打印自身 + System.out.print(tree.value); + System.out.print(" "); + + // 打印10左子树 + preOrderTraversal(tree.left); + // root.left.value // 5 + // root.left.left.value // 3 + // root.left.right.value // 7 + + // 打印右子树 + preOrderTraversal(tree.right); + // root.right.value // 15 + // root.right.left.value // 12 + // root.right.right.value // 20 + } + } +} + diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/Main.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/Main.java" new file mode 100644 index 0000000..6248583 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/Main.java" @@ -0,0 +1,29 @@ +class Main { + public static void main(String[] args){ + // 构造了一个空树 + BinaryTree bt = new BinaryTree(); + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 10 5 3 7 15 12 20 + */ + bt.root = new Node(10); + Node left1 = new Node(5); + bt.root.left = left1; + Node right1 = new Node(15); + bt.root.right = right1; + + Node left21 = new Node(3); + left1.left = left21; + Node left22 = new Node(7); + left1.right = left22; + + Node left23 = new Node(12); + Node left24 = new Node(20); + right1.left = left23; + right1.right = left24; + + bt.preOrder(); + } +} \ No newline at end of file diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/Node.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/Node.java" new file mode 100644 index 0000000..aa36154 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\205\210\345\272\217\351\201\215\345\216\206/Node.java" @@ -0,0 +1,11 @@ +public class Node { + public T value; + public Node left; + public Node right; + + Node(T val){ + value = val; + left = null; + right = null; + } +} diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/BinaryTree.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/BinaryTree.java" new file mode 100644 index 0000000..b2d6617 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/BinaryTree.java" @@ -0,0 +1,45 @@ +import java.util.Queue; +import java.util.LinkedList; + +public class BinaryTree { + public Node root; + + BinaryTree(){ + root = null; + } + + void insert(T val){} + + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 10 5 3 7 15 12 20 + */ + public void preOrder(){ + preOrderTraversal(root); + } + + private void preOrderTraversal(Node tree){ + if(tree != null) { + // root.value // 10 打印自身 + + + // 打印10左子树 + preOrderTraversal(tree.left); + // root.left.value // 5 + // root.left.left.value // 3 + // root.left.right.value // 7 + + // 打印右子树 + preOrderTraversal(tree.right); + // root.right.value // 15 + // root.right.left.value // 12 + // root.right.right.value // 20 + + System.out.print(tree.value); + System.out.print(" "); + } + } +} + diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/Main.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/Main.java" new file mode 100644 index 0000000..6248583 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/Main.java" @@ -0,0 +1,29 @@ +class Main { + public static void main(String[] args){ + // 构造了一个空树 + BinaryTree bt = new BinaryTree(); + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 10 5 3 7 15 12 20 + */ + bt.root = new Node(10); + Node left1 = new Node(5); + bt.root.left = left1; + Node right1 = new Node(15); + bt.root.right = right1; + + Node left21 = new Node(3); + left1.left = left21; + Node left22 = new Node(7); + left1.right = left22; + + Node left23 = new Node(12); + Node left24 = new Node(20); + right1.left = left23; + right1.right = left24; + + bt.preOrder(); + } +} \ No newline at end of file diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/Node.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/Node.java" new file mode 100644 index 0000000..aa36154 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\220\216\345\272\217\351\201\215\345\216\206/Node.java" @@ -0,0 +1,11 @@ +public class Node { + public T value; + public Node left; + public Node right; + + Node(T val){ + value = val; + left = null; + right = null; + } +} diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/FloorPrint_QUEUE.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/FloorPrint_QUEUE.java" new file mode 100644 index 0000000..8471006 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/FloorPrint_QUEUE.java" @@ -0,0 +1,47 @@ +void FloorPrint_QUEUE(pTreeNode &Tree) //层序遍历_队列实现 + { + queue < pTreeNode> q; + if (Tree != NULL) + { + q.push(Tree); //根节点进队列 + } + + while (q.empty() == false) //队列不为空判断 + { + cout << q.front()->data << " → "; + + if (q.front()->leftPtr != NULL) //如果有左孩子,leftChild入队列 + { + q.push(q.front()->leftPtr); + } + + if (q.front()->rightPtr != NULL) //如果有右孩子,rightChild入队列 + { + q.push(q.front()->rightPtr); + } + q.pop(); //已经遍历过的节点出队列 + } + }void FloorPrint_QUEUE(pTreeNode &Tree) //层序遍历_队列实现 + { + queue < pTreeNode> q; + if (Tree != NULL) + { + q.push(Tree); //根节点进队列 + } + + while (q.empty() == false) //队列不为空判断 + { + cout << q.front()->data << " → "; + + if (q.front()->leftPtr != NULL) //如果有左孩子,leftChild入队列 + { + q.push(q.front()->leftPtr); + } + + if (q.front()->rightPtr != NULL) //如果有右孩子,rightChild入队列 + { + q.push(q.front()->rightPtr); + } + q.pop(); //已经遍历过的节点出队列 + } + } \ No newline at end of file diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/Main.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/Main.java" new file mode 100644 index 0000000..6248583 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/Main.java" @@ -0,0 +1,29 @@ +class Main { + public static void main(String[] args){ + // 构造了一个空树 + BinaryTree bt = new BinaryTree(); + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 10 5 3 7 15 12 20 + */ + bt.root = new Node(10); + Node left1 = new Node(5); + bt.root.left = left1; + Node right1 = new Node(15); + bt.root.right = right1; + + Node left21 = new Node(3); + left1.left = left21; + Node left22 = new Node(7); + left1.right = left22; + + Node left23 = new Node(12); + Node left24 = new Node(20); + right1.left = left23; + right1.right = left24; + + bt.preOrder(); + } +} \ No newline at end of file diff --git "a/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/Node.java" "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/Node.java" new file mode 100644 index 0000000..aa36154 --- /dev/null +++ "b/20200340938\350\213\217\346\231\223\350\215\224\344\272\214\345\217\211\346\240\221/\345\261\202\345\272\217\351\201\215\345\216\206/Node.java" @@ -0,0 +1,11 @@ +public class Node { + public T value; + public Node left; + public Node right; + + Node(T val){ + value = val; + left = null; + right = null; + } +} -- Gitee