通过文本文件搜索红黑树
Searching a red black tree through text file
我正在做一个学校项目,它是一个使用红黑树的字典应用程序。所以程序读取一个文本文件,每一行只有一个词。
当我进行搜索时,如果我用不同的字母大小输入它,它会告诉我该词不可用。例如,如果文件有词 "Lion" 并且我在我的程序中搜索 "lion" 它说该词在字典中不可用。这是我的搜索方法。请帮我解决这个问题。
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;
}
您应该使用 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;
}
我正在做一个学校项目,它是一个使用红黑树的字典应用程序。所以程序读取一个文本文件,每一行只有一个词。 当我进行搜索时,如果我用不同的字母大小输入它,它会告诉我该词不可用。例如,如果文件有词 "Lion" 并且我在我的程序中搜索 "lion" 它说该词在字典中不可用。这是我的搜索方法。请帮我解决这个问题。
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;
}
您应该使用 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;
}