数据结构之树(Java 实现版)
Posted yangnk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构之树(Java 实现版)相关的知识,希望对你有一定的参考价值。
实现功能:
1.实现了树的构建;
2.实现了树的前序递归遍历、后序递归遍历、中序递归遍历;
1 class BinaryTreeNode{ 2 int data; 3 BinaryTreeNode leftNode = null, rightNode = null; 4 5 public void setBinaryTreeNode(int data) { 6 this.data = data; 7 } 8 public void setLeftNode(BinaryTreeNode leftNode) { 9 this.leftNode = leftNode; 10 } 11 public void setRightNode(BinaryTreeNode rightNode) { 12 this.rightNode = rightNode; 13 } 14 } 15 16 class BinaryTree{ 17 BinaryTreeNode[] btn; 18 BinaryTreeNode rooNode; 19 int NodeSize; 20 21 public BinaryTree(int[] arrayNode) { 22 NodeSize = arrayNode.length; 23 btn = new BinaryTreeNode[NodeSize]; 24 25 //把arrayNode元素转化为节点 26 for(int i = 0; i < NodeSize; i++){ 27 btn[i] = new BinaryTreeNode(); 28 btn[i].setBinaryTreeNode(arrayNode[i]); 29 if(i == 0){ 30 rooNode = btn[i]; 31 } 32 } 33 //把二叉树的左右子树节点补全 34 for(int j = 0; j <= (NodeSize - 2)/2; j++){ 35 btn[j].setLeftNode(btn[2*j + 1]); 36 btn[j].setRightNode(btn[2*j + 2]); 37 } 38 } 39 //递归方法前序遍历 40 void preOrder(BinaryTreeNode btn){ 41 BinaryTreeNode root = btn; 42 if(root != null){ 43 printNode(root); 44 inOrder(root.leftNode); 45 inOrder(root.rightNode); 46 } 47 } 48 //递归方法中序遍历 49 void inOrder(BinaryTreeNode btn){ 50 BinaryTreeNode root = btn; 51 52 if(root != null){ 53 inOrder(root.leftNode); 54 printNode(root); 55 inOrder(root.rightNode); 56 } 57 } 58 //递归方法后序遍历 59 void postOrder(BinaryTreeNode btn){ 60 BinaryTreeNode root = btn; 61 62 if(root != null){ 63 postOrder(root.leftNode); 64 postOrder(root.rightNode); 65 printNode(root); 66 } 67 } 68 //打印节点信息 69 static void printNode(BinaryTreeNode btn){ 70 int a = btn.data; 71 System.out.println(a); 72 } 73 } 74 75 public class Tree { 76 public static void main(String[] args) { 77 int[] arrayNode = new int[]{1,2,3,4,5,6,7,8,9}; 78 BinaryTree bt = new BinaryTree(arrayNode); 79 System.out.println("inOrder:"); 80 bt.inOrder(bt.rooNode); 81 System.out.println("preOrder:"); 82 bt.preOrder(bt.rooNode); 83 System.out.println("postOrder:"); 84 bt.postOrder(bt.rooNode); 85 } 86 }
以上是关于数据结构之树(Java 实现版)的主要内容,如果未能解决你的问题,请参考以下文章