这是我的代码:
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());
}
}
在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的补码: