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


查看全文
  • 相关阅读:
    活动精彩实录 | 在Kubernetes上自动运行Cassandra
    行业动态 | 利用云端Cassandra实时推送个性化广告
    技术基础 | 用JSON在抖音上发布动态——使用Stargate即可轻松实现
    Apache Cassandra——可扩展微服务应用程序的持久数据存储
    使用微服务构建现代应用程序
    何为“混合云”?
    Linux基本命令(5)管理使用者和设立权限的命令
    Linux基本命令(4)有关关机和查看系统信息的命令
    Linux基本命令(3)文件备份和压缩命令
    Linux基本命令(2)有关磁盘空间的命令
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10951028.html
  • Copyright © 2011-2022 走看看