diff --git a/src/dataANDcalc/java/tree/TreeIterator.java b/src/dataANDcalc/java/tree/TreeIterator.java new file mode 100644 index 0000000..e53613a --- /dev/null +++ b/src/dataANDcalc/java/tree/TreeIterator.java @@ -0,0 +1,120 @@ +package tree; + +public class TreeIterator { + + private TreeNode root; + + private void transTree(int[] arr){ + for (int i = 0; i < arr.length; i++) { + TreeNode treeNode = new TreeNode(arr[i]); + addNode(root, treeNode); + } + } + + private void addNode(TreeNode tempNode, TreeNode treeNode){ + if(root == null){ + root = treeNode; + return; + } + + if(treeNode.nodetempNode.node){ + if (tempNode.right == null){ + tempNode.right = treeNode; + } else { + addNode(tempNode.right, treeNode); + } + } + } + + private void forwardIterator(TreeNode treeNode){ + if(treeNode == null){ + System.out.println("当前节点为空"); + return; + } + + System.out.println(treeNode.toString()); + + if (treeNode.left != null){ + forwardIterator(treeNode.left); + } + + if (treeNode.right!= null){ + forwardIterator(treeNode.right); + } + } + + private void middleIterator(TreeNode treeNode){ + if(treeNode == null){ + System.out.println("当前节点为空"); + return; + } + + if (treeNode.left!= null){ + middleIterator(treeNode.left); + } + + System.out.println(treeNode.toString()); + + if (treeNode.right!= null){ + middleIterator(treeNode.right); + } + } + + private void behindIteratro(TreeNode treeNode){ + if(treeNode == null){ + System.out.println("当前节点为空"); + return; + } + + if (treeNode.left!= null){ + behindIteratro(treeNode.left); + } + + if (treeNode.right!= null){ + behindIteratro(treeNode.right); + } + + System.out.println(treeNode.toString()); + } + + public static class TreeNode{ + private int node; + + private TreeNode left; + + private TreeNode right; + + public TreeNode(int node) { + this.node = node; + } + + @Override + public String toString() { + return "TreeNode{" + + "node=" + node + + ", left=" + (left == null ? "null" : left.node) + + ", right=" + (right == null ? "null" : right.node) + + '}'; + } + } + + public static void main(String[] args) { + int[] arr = {7, 3, 10, 12, 5, 1, 9}; + TreeIterator treeIterator = new TreeIterator(); + treeIterator.transTree(arr); + System.out.println("前序遍历:"); + treeIterator.forwardIterator(treeIterator.root); + System.out.println("中序遍历:"); + treeIterator.middleIterator(treeIterator.root); + System.out.println("后序遍历:"); + treeIterator.behindIteratro(treeIterator.root); + } +}