Java 二叉树的实现以及遍历 - 慧强杨

java

Java二叉树的实现以及遍历

import java.util.LinkedList;

import java.util.List;

/**

* Created by yhq on 2016/4/11.

*/

public class BinTree{

private static int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9};

private static List<Node> nodeList = null;

public static void createBinTree() {

nodeList = new LinkedList<Node>();

//放到链表中

for (int arr : array) {

nodeList.add(new Node(arr));

}

// 对前lastParentIndex-1个父节点按照父节点与孩子节点的数字关系建立二叉树

for (int parentIndex = 0; parentIndex < array.length / 2 - 1; parentIndex++) {

// 左孩子

nodeList.get(parentIndex).leftNode = nodeList.get(parentIndex * 2 + 1);

// 右孩子

nodeList.get(parentIndex).rightNode = nodeList.get(parentIndex * 2 + 2);

}

// 最后一个父节点:因为最后一个父节点可能没有右孩子,所以单独拿出来处理

int lastParentIndex = array.length / 2 - 1;

// 左孩子

nodeList.get(lastParentIndex).leftNode = nodeList.get(lastParentIndex * 2 + 1);

// 右孩子,如果数组的长度为奇数才建立右孩子

if (array.length % 2 == 1) {

nodeList.get(lastParentIndex).rightNode = nodeList.get(lastParentIndex * 2 + 2);

}

}

private static class Node {

Node leftNode;

Node rightNode;

int data;

private Node(int data) {

leftNode = null;

rightNode = null;

this.data = data;

}

}

/**

* 先续遍历

*/

public static void preOrderTraverse(Node node) {

if (node == null) {

return;

}

System.out.print(node.data + "\t");

preOrderTraverse(node.leftNode);

preOrderTraverse(node.rightNode);

}

public static void sufOrderTraverse(Node node){

if(node==null){

return ;

}

sufOrderTraverse(node.rightNode);

System.out.print(node.data);

sufOrderTraverse(node.leftNode);

}

public static void inOrderTraverse(Node node){

if(node==null){

return ;

}

inOrderTraverse(node.leftNode);

System.out.print(node.data);

inOrderTraverse(node.rightNode);

}

public static void main(String[] args) {

BinTree tree = new BinTree();

tree .createBinTree();

Node root = nodeList.get(0);

preOrderTraverse(root);

inOrderTraverse(root);

sufOrderTraverse(root);

}

}

发表于

2016-04-11 16:22 

慧强杨 

阅读(145) 

评论(0) 

编辑 

收藏 

举报

 

以上是 Java 二叉树的实现以及遍历 - 慧强杨 的全部内容, 来源链接: utcz.com/z/393452.html

回到顶部