【问题标题】:Binary Tree use String二叉树使用字符串
【发布时间】:2022-01-18 03:53:39
【问题描述】:

我必须从任何类型制作关于二叉树的源代码。这意味着输入是字符串,所以在我看来,我必须将字符串转换为 byte[ ] 然后从中获取 ASCII 码。但我不知道如何从字节制作二叉树或将字节[]转换为整数。我现在卡住了。

class Node{
    int data;
    Node left, right;
    
    public Node(int data){
        this.data = data;
        Node left = right = null;
    }
}

class BinaryTree{
    public Node root;
    
    public void newNode(int data){
        if(root == null){
            root = newNode(root, new Node(data));
        }
    }
    private Node newNode(Node root, Node newData){
        if(root == null){
            root = newData;
            return root;
        }
        if(newData.data < root.data){
            root.left = newNode (root.left, newData);
        }else{
            root.right = newNode (root.right, newData);
        }
        return root;
    }
    public void inOrder(Node node){
        if(node !=null){
            inOrder(node.left);
            System.out.println(node.data + " ");
            inOrder(node.right);
        }else{
            return;
        }
    }
    
    public void preOrder(Node node){
        if(node !=null){
            System.out.println(node.data +" ");
            preOrder(node.left);
            preOrder(node.right);
            
        }else{
            return;
        }
    }
    public void postOrder(Node node){
        if(node !=null){
            preOrder(node.left);
            preOrder(node.right);
            System.out.println(node.data +" ");
        }else{
            return;
        }
    }
    
}
public class ALPROMOD5{
    
    public static void main(String[] args) throws UnsupportedEncodingException {
        Scanner scan = new Scanner(System.in);
        String inp;
        
        System.out.println("String to ASCII");
        System.out.println("Binary Tree from Converted String to Char");
        System.out.print("\nMasukan Inputan : ");
        inp = scan.nextLine();
    
        byte[]  bt = inp.getBytes("US-ASCII");
        System.out.print("ASCII Value of("+inp+") is : ");
        System.out.println(Arrays.toString(bt));
       
    }
}

【问题讨论】:

  • 如果要将每个字符都获取为ASCII码,为什么需要字节数组?只需使用String#toCharArray

标签: java arrays binary-search-tree


【解决方案1】:

看看泛型。根本不需要转换您的数据。这是一个开始的地方: 注意:对于比较,请使用可比较接口中的 compareTo() 方法。

public class Node<T extends Comparable<T>> {
private T payload;
private Node<T> leftNode;
private Node<T> rightNode;

public Node(T payload) {
    this.payload = payload;
}

public T getPayload() {
    return payload;
}

public Node<T> getLeftNode() {
    return leftNode;
}

public Node<T> getrightNode() {
    return rightNode;
}

public void setLeftNode(Node<T> left) {
    leftNode = left;
}

public void setRightNode(Node<T> right) {
    rightNode = right;
}
}

public class BinaryTree<T extends Comparable<T>> {
private Node<T> root;

public BinaryTree(T rootPayload) {
    root = new Node<T>(rootPayload);
}

public Node<T> addNode(T data) {
    return add(root, data);
}

private Node<T> add(Node<T> root, T data) {
    //Add your code returning the node representing the data.
    return null;
}
}

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 2019-10-18
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    相关资源
    最近更新 更多