
全部展开
import java.util.List;
import java.util.LinkedList;
公共类Bintrees {
private int [] array = {1,2,3,4,5,6,7,8,9};
私有静态列表
私有静态类节点{
节点leftChild;
node rightChild;
int数据;
节点(int newData){
leftChild = null;
rightChild = null;
data = newData;
}
}
//创建一个二叉树

public void createBintree(){
nodeList = new LinkedList <节点>();
///将数组值转换为节点
for(int nodeIndex = 0; nodeIndex nodeList.add(新节点(数组[nodeIndex])); } //根据父子节点之间的数量关系二叉树 java实现二叉树 java实现,为最后一个父节点构建二叉树 for(int parentIndex = 0; parentIndex nodeList.get(parentIndex).leftChild = nodeList.get(parentIndex * 2 +1); nodeList.get(parentIndex).rightChild = nodeList.get(parentIndex * 2 + 2); } //最后一个父节点 int lastParentIndex = array.length / 2-1; //左孩子 nodeList.get(lastParentIndex).leftChild = nodeList.get(lastParentIndex * 2 +1); //如果是奇数,则创建合适的子代 if(array.length%2 == 1){ nodeList.get(lastParentIndex).rightChild = nodeList.get(lastParentIndex * 2 + 2); } } //预购遍历 public static void preOrderTraverse(节点节点){ 如果(节点==空){ 返回; } System.out.print(node.data +“”); preOrderTraverse(node.leftChild); preOrderTraverse(node.rightChild); } //有序遍历 public static void inOrderTraverse(节点节点){ 如果(节点==空){ 返回; } inOrderTraverse(node.leftChild); System.out.print(node.data +“”); inOrderTraverse(node.rightChild); } //后遍历 public static void postOrderTraverse(节点节点){ 如果(节点==空){ 返回; } postOrderTraverse(node.leftChild); postOrderTraverse(node.rightChild); System.out.print(node.data +“”); } public static void main(字符串[] args){ Bintrees binTree =新的Bintrees(); binTree.createBintree(); 节点根= nodeList.get(0); System.out.println(“预定遍历: ”); preOrderTraverse(根); System.out.println(); System.out.println(“有序遍历: ”); inOrderTraverse(根); System.out.println(); System.out.println(“后遍历: ”); postOrderTraverse(根); } } 输出: 预订遍历: 1 2 4 8 9 5 3 6 7 中阶遍历: 8 4 9 2 5 1 6 3 7 后遍历: 8 9 4 5 2 6 7 3 1


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-147609-1.html
你永远是我们的浪漫功夫熊猫