zoukankan      html  css  js  c++  java
  • 二叉树深度

    一、用Integer为Comparable接口实例化

    为了简化代码,直接使用Integer类,因为Integer类;已经实现了Comparable接口。

     1 package comparabledemo;
     2 
     3 public class ComparableDemo02 {
     4 
     5     public static void main(String[] args) {
     6         Comparable com = null;
     7         com  =30;               //实例化Comparable接口
     8         System.out.println(com);      //实际上调用的是toString()方法
     9     }
    10 
    11 }

    二、二叉树的元素添加、中序遍历、深度

     1 package comparabledemo;
     2 
     3 class BinaryTree{
     4     class Node{
     5         private Comparable data;
     6         private Node left;
     7         private Node right;
     8         public void addNode(Node newNode){
     9             if(newNode.data.compareTo(this.data)<0){
    10                 if(this.left == null){
    11                     this.left = newNode;
    12                 }else{
    13                     this.left.addNode(newNode);
    14                 }
    15             }
    16             if(newNode.data.compareTo(this.data)>=0){
    17                 if(this.right ==null){
    18                     this.right = newNode;
    19                 }else{
    20                     this.right.addNode(newNode);
    21                 }
    22             }
    23         }
    24         public void printNode(){
    25             if(this.left != null){
    26                 this.left.printNode();
    27             }
    28             System.out.println(this.data);
    29             if(this.right != null){
    30                 this.right.printNode();
    31             }
    32         }
    33         public int treeDepth(Node node){
    34             int deptleft,deptright;
    35             if(node == null){
    36                 return 0;
    37             }else{
    38                 deptleft = treeDepth(node.left);
    39                 deptright = treeDepth(node.right);
    40                 if(deptleft>deptright){
    41                     return deptleft + 1;
    42                 }else{
    43                     return deptright + 1;
    44                 }
    45             }
    46         }
    47     }
    48     private Node root;
    49     public void add(Comparable data){
    50         Node newNode = new Node();
    51         newNode.data = data;
    52         if(root == null){
    53             root = newNode;
    54         }else{
    55             root.addNode(newNode);
    56         }
    57     }
    58     public void print(){
    59         this.root.printNode();
    60     }
    61     public void Depth(){
    62         int dept;
    63         if(this.root == null){
    64             dept = 0;
    65         }else{
    66             dept = this.root.treeDepth(this.root);
    67         }
    68         System.out.println(dept);
    69     }
    70 }
    71 
    72 public class CompatableDemo03 {
    73 
    74     public static void main(String[] args) {
    75         BinaryTree bt = new BinaryTree();
    76         
    77         bt.add(8);
    78         bt.add(3);
    79         //bt.add(3);
    80         bt.add(10);
    81         bt.add(9);
    82         bt.add(1);
    83         bt.add(5);
    84         //bt.add(5);
    85         //bt.print();
    86         bt.Depth();
    87     }
    88 }
  • 相关阅读:
    【转载】Python tips: 什么是*args和**kwargs?
    Python关于File学习过程
    tensorflow训练中出现nan
    axis调用Web服务报axis unexpected wrapper element{XXXX}XXX错误的解决
    微信小程序windowHeight的值在ios和android平台不一致问题解决办法
    微信小程序scroll-view滚动一次多次触发的问题解决方案
    微信小程序自定义TabBar
    微信小程序页面列表与详情页跳转的正确姿势
    Spring动态获取已注入的对象的方法
    MAVEN项目不扫描mybatis的mapper.xml问题
  • 原文地址:https://www.cnblogs.com/XuGuobao/p/7365368.html
Copyright © 2011-2022 走看看