标题:这循环输出的结果 居然是这样的。
只看楼主
zzjvslove
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:46
专家分:197
注 册:2016-5-23
结帖率:100%
 问题点数:0 回复次数:0 
这循环输出的结果 居然是这样的。
class BinaryTree{
    class Node{            
        private Comparable data ;   
        private Node left ;            
        private Node right ;        
        public Node(Comparable data){
            this.data = data ;
        }
        public void addNode(Node newNode){
            if(newNode.(this.data)<0){   
                if(this.left==null){
                    this.left = newNode ;   
                }else{
                    this.left.addNode(newNode) ;   
                }
            }
            if(newNode.(this.data)>=0){   
                if(this.right==null){
                    this.right = newNode ;   
                }else{
                    this.right.addNode(newNode) ;   
                }
            }
        }
//--------------------------------------------------------------------------------------------
    public void printNode(){            //在输出时、这一段为什么不是一个死循环啊?
            if(this.left!=null){
                this.left.printNode() ;   
            }
            System.out.print(this.data + "\t") ;
            if(this.right!=null){
                this.right.printNode() ;
            }
        }

//--------------------------------------------------------------------------------------------
    };
    private Node root ;        
    public void add(Comparable data){   
        Node newNode = new Node(data) ;   
        if(root==null){   
            root = newNode ;   
        }else{
            root.addNode(newNode) ;
        }
    }
    public void print(){
        this.root.printNode() ;   
    }
};
public class ComparableDemo03{
    public static void main(String args[]){
        BinaryTree bt = new BinaryTree() ;
        bt.add(8) ;
        bt.add(3) ;
        bt.add(3) ;
        bt.add(10) ;
        bt.add(9) ;
        bt.add(1) ;
        bt.add(5) ;
        bt.add(5) ;
        System.out.println("排序之后的结果:") ;
        bt.print() ;
    }
};


/*  结果如下
D:\99.7_testj>javac ComparableDemo03.java
注: ComparableDemo03.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

D:\99.7_testj>java ComparableDemo03
排序之后的结果:
1       3       3       5       5       8       9       10

*/

为什么不会是一个不断调用的死循环啊?
哪位高手可以详细解说一下哈。

搜索更多相关主题的帖子: private public null 
2016-05-30 12:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-465384-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016511 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved