Поиск красного черного дерева через текстовый файл - PullRequest
0 голосов
/ 12 мая 2018

Я работаю над школьным проектом и его словарным приложением, использующим красное черное дерево ... поэтому программа читает текстовый файл, и в каждой строке есть только одно слово. когда я выполняю поиск, это дает мне то, что слово недоступно, если я ввел его с разным размером букв ... например, если в файле есть слово «Лев», и я искал «лев» в моей программе, оно говорит, что слово нет в словаре .. вот мой метод поиска. И помогите мне исправить это.

public static int search(Node root,String data)
{ 
    while(!root.isNullLeaf)
{    String temporary=root.data;
    if(temporary.equals(data))
    {
        System.out.print("yaaay "+ root.data +" is found\n");
        return 0;
    }
   if(temporary.compareTo(data)>0)
       root=root.left;

     if(temporary.compareTo(data)<0)
       root=root.right;

}
    System.out.println("ouch "+ data+ " not found\n");
    return 1;
    }

1 Ответ

0 голосов
/ 12 мая 2018

Вы должны использовать функции XXXIgnoreCase для этих требований типа

temporary.equals(data) становится temporary.equalsIgnoreCase(data) и temporary.compareTo(data) становится temporary.compareToIgnoreCase(data)

Я также исправил части кодаупростить вашу логику

public static int search(Node root,String data) { 
    while(!root.isNullLeaf) {    
        String temporary=root.data;
        if(temporary.equalsIgnoreCase(data)) {
            System.out.print("yaaay "+ root.data +" is found\n");
            return 0;
        }
        int compareResult = temporary.compareToIgnoreCase(data);
        if(compareResult > 0)
            root = root.left;
        else
            root = root.right;   
    }
    System.out.println("ouch "+ data+ " not found\n");
    return 1;
}
...