zoukankan      html  css  js  c++  java
  • Java创建二叉树

    版权声明:本文为博主原创文章,未经博主同意不得转载。

    https://blog.csdn.net/yeweiouyang/article/details/37814461

    二叉树的值保存在数组中,以0作为分隔,数字0表示空节点,数组

    public static final int[] TREE_VALUE = new int[]{1,2,3,0,4,5,0,0,6,0,0,7,0,0,8,0,9,10,0,0,0};
    表示的二叉树是:


    /**
     * 维护构建二叉树的值和值索引
     */
    public static class TreeValue {
    	public static int index = 0;
    	public static final int[] TREE_VALUE = new int[]{1,2,3,0,4,5,0,0,6,0,0,7,0,0,8,0,9,10,0,0,0};
    }
    
    /**
     * Create A Binary Tree with TreeValue
     * 
     * @node: a tree node
     * @i: the index of tree value
     */
    public static TreeNode createTree(TreeNode node, int i) {
    	if (0 == TreeValue.TREE_VALUE[i]) {
    		return null;
    	} else {
    		node.setVal(TreeValue.TREE_VALUE[i]);
    	}
    	
    	TreeNode leftChild = new TreeNode();
    	node.left = createTree(leftChild, ++TreeValue.index);
    	TreeNode rightChild = new TreeNode();
    	node.right = createTree(rightChild, ++TreeValue.index);
    
    	return node;
    }
    
    /**
     * Definition for binary tree
     */
    public static class TreeNode {
    	int val;
    	TreeNode left;
    	TreeNode right;
    	
    	TreeNode() {
    		left = null;
    		right = null;
    	}
    	TreeNode(int val) {
    		this.val = val;
    		left = null;
    		right = null;
    	}
    	
    	public void setVal(int val) {
    		this.val = val;
    	}
    }
    
    public static void main(String[] args) {
    	TreeNode root = new TreeNode();
    	root = createTree(root, index);
    }


查看全文
  • 相关阅读:
    软件工程——第一章 软件和软件工程的基本概念
    软件工程——第三章 软件需求分析
    软件工程——第六章 软件测试
    软件工程——第四章 面向过程的软件设计方法
    Statement和PreparedStatement之间的区别(转)
    Eclipse环境变量配置、插件安装、常见错误
    Flex动态读取XML文件并显示在DataGrid中
    修改图层的symbol(AE+C#)
    如何用Httpservice和Webservice来和Flex进行通讯(转)
    flex事件讲解(转)
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10951028.html
  • Copyright © 2011-2022 走看看