当前位置: 首页 > 知识库问答 >
问题:

java程序打印奇怪的十六进制输出

方绪
2023-03-14

这是我的代码

public class bst {
    Node root;

    public Node getRoot(){
        return root;
    }

    public bst(){
        root=null;
    }

    //method addNode
    public void insert(int key){

        Node newNode= new Node(key);//initialize Node

        if(root==null){

            root=newNode;

        }else{
        Node focusNode=root;        
        Node insNode=root;

        while(insNode!=null){
            focusNode=insNode;

            if(key<focusNode.getKey()){
                insNode=insNode.getLeft();
            }
            else{
                insNode=insNode.getRight();
            }
        }

        if(key<focusNode.getKey()){
            focusNode.setLeft(newNode);
        }
        else{
            focusNode.setRight(newNode);
            }       
        }
    }


    public void inOrder(Node focusNode){

        if (focusNode !=null){

            inOrder(focusNode.leftChild);

            System.out.println(focusNode);

            inOrder(focusNode.rightChild);

        }
    }


//Node class
    class Node{

        int key;        
        Node leftChild;
        Node rightChild;

        //Node constructor
        Node(int key){
            this.key=key;
            leftChild=null;
            rightChild=null;
            }
        public void setLeft(Node left){
            this.leftChild=left;            
        }
        public void setRight(Node right){
            this.rightChild=right;      
        }
        public Node getLeft(){return leftChild;}
        public Node getRight(){return rightChild;}
        public void setKey(int k){this.key=k;}
        public int getKey(){return key;}
        public void print(){
            System.out.println(getKey());
        }
        }


    public static void main(String[] args){

        bst theTree= new bst();

        theTree.insert(30);
        theTree.insert(60);
        theTree.insert(50);
        theTree.insert(70);

        theTree.inOrder(theTree.getRoot());


    }

}

共有1个答案

鲍向笛
2023-03-14

inorder方法中,您可以:

System.out.println(focusNode);

您正在直接打印focusnode,因此除非node类重写默认的toString方法,否则您将只看到对象的哈希代码(如果有兴趣,请参阅此问题以获取详细信息)。你可能想要

System.out.println(focusNode.getKey());

或者只使用您编写的print方法。

 类似资料:
  • 本文向大家介绍Java 程序实现八进制转换为二进制,十进制,十六进制,包括了Java 程序实现八进制转换为二进制,十进制,十六进制的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个八进制数字。要将八进制转换为其他进制,例如二进制,十六进制等,Java代码如下: 示例 输出结果 一个名为Demo的类包含一个名为“base_convert”的函数。此函数将整数从源基解析为目标基,将其转换为字符串

  • 问题内容: 我有这个字符串:我想使用Python作为打印它。 仅适用于整数。 怎么做到呢? 问题答案: 您可以将字符串转换为int生成器,对每个元素应用十六进制格式,并使用分隔符插入:

  • 我有这个字符串:并且我想使用Python将其打印为48:65:6c:6c:6f:2c:20:57: 6f: 72:6c: 64:21。 仅适用于整数。 怎样才能做到呢?

  • 问题内容: 我声明了一个字节数组(我正在使用Java): 如何打印存储在数组中的不同值? 如果我使用System.out.println(test [0]),它将打印‘10’。我希望它打印0x0A 谢谢大家! 问题答案: 或 (精美打印) 或 (精美打印)

  • 问题内容: 当我在玩Java Puzzlers的代码(我没有书)时,遇到了这段代码 输出为 当我尝试将代码更改为 我仍然得到与 对于,输出 为,输出 为,输出为 为什么我不首先得到输出?我不能为此做出任何正面或反面吗?有人可以说清楚吗? 问题答案: 二进制0.1是0.00011001100110011001100110011001 ....., 因此,它不能精确地用二进制表示。根据四舍五入的位置(

  • 问题内容: 我有一个代表2的补码的十六进制字符串。是否有一种简单的方法(库/函数)将十六进制转换为十进制而不直接使用其位? EG这是给定左侧十六进制的预期输出: 谢谢! 问题答案: 这似乎在欺骗Java转换数字而不强制给出正结果: 当然,这种情况仅适用于8、16、32和64位2的补码: