• 【Java】二叉树


    如果以数据结构为例,我觉得需要掌握的有:会使用递归、数组操作、链表、树、图。

    其中,树是一个很重要的结构。对树的操作需要考虑俩个问题:

      1.一个是数据的存储问题,左右

      2.树的遍历问题:前序、中序、后序

    如果要进行二叉树的操作处理往往要使用中序,因为中序是可以排序的。下面实现一个二叉树,同时可以排序。

    class BinaryTree{
        private class Node{  
            private Comparable data;//因为数据是要可以比较的所以需要排序
            private Node left;
            private Node right;
            public Node(Comparable data){
                this.data = data;
            }
            public void addNode(Node newNode){
                if(this.data.comparTo(newNode.data)>0){
                    if(this.right == null){
                        this.right = newNode;
                    }else{
                        this.left.addNode(newNode);
                    }
                }else{
                    if(this.left == null){
                        this.left = newNode;
                    } else{
                        this.left.addNode(newNode);
                    }
                }
            }
            public void toArrayNode(){
                if (this.left != null){
                    this.left.toArrayNode();
                }
                BinaryTree.this.reObj[BinaryTree.this.foot ++] = this.data;
                if(this.right != null){
                    this.right.toArrayNode();
                }
            }
    
        private Node root; //需要根节点
        private int count; //统计个数
        private int foot;
        private Object reObj[];
        public void add(object data){
            Comparable com = (Comparable) data;
            Node newNode = new Node(com);
            if (this.root == null){
                this.root = newNode;
            }    
            else{
                this.root.addNode(newNode);
            }
            this.count ++;
        }
        public Object[] toArray(){
            if(this.root == null){
                return null;
            }
            this.retObj = new Object[this.count];
            this.root.toArrayNode();
            return this.retObj;
        }
    }
  • 相关阅读:
    C# Trick
    DotNet Resource
    人员角色权限
    Verticles for Web Application
    Node Addon
    EventBus
    怎么实现员工和工资大数据分析,echarts+js实现
    winform怎么实现财务上凭证录入和打印
    WPF实现大数据分析
    非常经典的面试题,方案很多,一起交流学习
  • 原文地址:https://www.cnblogs.com/guangluwutu/p/12300697.html
Copyright © 2020-2023  润新知