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);
    }


查看全文
  • 相关阅读:
    深入理解TCP协议及其源代码
    Socket与系统调用深度分析
    构建调试Linux内核网络代码的环境MenuOS系统
    创新产品的需求分析:未来的图书会是什么样子?
    socket通信的原理与实践
    案例分析:设计模式与代码的结构特性
    网络相关的命令工具研究报告:ssh
    业务领域建模Domain Modeling
    ubuntu 设置静态ip,但显示scope global secondary ens33
    解决Python查询Mysql中文乱码问题
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10951028.html
  • Copyright © 2011-2022 走看看