zoukankan      html  css  js  c++  java
  • 用java语言编写的简单二叉树

    package com.cjonline.foundation.evisa;
    
    public class TestTree {
    
        private int data=-1;
        private TestTree lchild=null;
        private TestTree rchild=null;
        private int pos=-1;    //记录当前已经使用数组的位置
        
        /*
         * 构造二叉树
         */
        public TestTree createTree(TestTree tree,int[] data){
            if(data == null || data.length<1)
                return null;
            tree = new TestTree();
            pos++;
            if(pos<data.length && data[pos]!=-1){
                tree.data=data[pos];
                tree.setLchild(createTree(lchild,data));//设置左孩子
                tree.setRchild(createTree(rchild,data));//设置右孩子
            }
            return tree;
        }
        /*
         * 前序遍历
         */
        public void print(TestTree t){
            if(t!=null && t.getData()!=-1){
                System.out.print("    "+t.getData());
                print(t.getLchild());
                print(t.getRchild());
            }
        }
    
        @Override
        public String toString() {
            return "TestTree [data=" + data + "]";
        }
        public static void main(String[] args) {
            TestTree tree = new TestTree();
            int[] data =  {1,2,-1,-1,3,-1,-1};
            tree=tree.createTree(tree, data);
            System.out.println(tree);
            System.out.println(tree.getLchild());
            System.out.println(tree.getRchild());
            tree.print(tree);
        }
    
        /**  
         * 获取data  
         * @return 
         */
        public int getData() {
            return data;
        }
    
        /** 
         * 设置 data 
         * @param data 
         */
        public void setData(int data) {
            this.data = data;
        }
    
        /**  
         * 获取lchild  
         * @return 
         */
        public TestTree getLchild() {
            return lchild;
        }
    
        /** 
         * 设置 lchild 
         * @param lchild 
         */
        public void setLchild(TestTree lchild) {
            this.lchild = lchild;
        }
    
        /**  
         * 获取rchild  
         * @return 
         */
        public TestTree getRchild() {
            return rchild;
        }
    
        /** 
         * 设置 rchild 
         * @param rchild 
         */
        public void setRchild(TestTree rchild) {
            this.rchild = rchild;
        }
    
        /**  
         * 获取pos  
         * @return 
         */
        public int getPos() {
            return pos;
        }
    
        /** 
         * 设置 pos 
         * @param pos 
         */
        public void setPos(int pos) {
            this.pos = pos;
        }
    
    }
  • 相关阅读:
    《深入浅出WPF》4.0x名称空间
    《深入浅出WPF》3.0 XAML语法
    DataGridview 自动切换到 下一行
    C# 生成条形码图片,效果不错
    将DataTable 导出为csv
    DataTable,DataGridVIew转换到xls 方法 (转)
    NPOI读取Excel 数据 转。。。
    修改 字段大小
    VC
    统计每天 指定 时间段内 的数据
  • 原文地址:https://www.cnblogs.com/lbangel/p/3334424.html
Copyright © 2011-2022 走看看