Próbuję usunąć ciąg z BST i nie mogę tego rozgryźć. Wiem, jak usunąć liczby całkowite, ale nie mogę przekonwertować kodu, aby usunąć węzły, które mają ciągi. Oto kod, który obecnie mam

    /*
     * Removes the specified string from the BST
     */

    public boolean remove(String s){
        Node ans = remove(root, s);
        if(ans == null){
            return false;
        } else {
            return true;
        }
    }

    private static Node remove(Node root, String s) {

        if (root == null)
            return null;

        if (s.compareTo(root.data) < 0) {
            root.left = remove(root.left, s);
        } else if (s.compareTo(root.data) > 0) {
            root.right = remove(root.right, s);
        } else {

            if (root.left == null) {
                return root.right;
            } else if (root.right == null)
                return root.left;

            root.data = minimum(root.right);
            root.right = remove(root.right, root.data);
        }

        return root;

    }

    public static String minimum(Node root) {
        String minimum = root.data;
        while (root.left != null) {
            minimum = root.left.data;
            root = root.left;
        }
        return minimum;
    }
0
Ryan 20 listopad 2019, 01:24

1 odpowiedź

Zamień wszystkie „Integer” na „String”.

0
LowKeyEnergy 20 listopad 2019, 07:49