У меня есть рекурсивный метод, который я пытаюсь выполнить. Там, где он добавляет элементы в массив сбалансированным образом в двоичном дереве поиска.Рекурсия Бесконечный цикл в java
public void addBalanced(String file){
addToArrayList(file);
addBalanced(a,0, a.size()-1);
}
private void addBalanced(ArrayList<String> list,int start, int end){
int middle = (start+end)/2;
bst.add(list.get(middle));
if(list.size() == 0){
return;
}else if (list.size() == 1){
bst.add(a.get(0));
} else if(start >= end){
return;
}
addBalanced(list,start, middle-1);
addBalanced(list,middle+1, end);
}
Переменные а список массива, который является и др количеством строк, что файл состоит из Переменной BST является бинарным деревом поиска
Он находится в бесконечном цикле, что я могу сказать и не уверен, как это исправить. Я попытался добавить базовый регистр для массива размером 0 и 1, но он все еще застрял в цикле.
public static void main(String[] args) {
BSTSpellChecker<String> foo = new BSTSpellChecker<>();
foo.addBalanced(foo.getFilePath());
}
Это тестовая текстовый файл:
ааа aahed aahing ахов Aardvark трубкозубов Aardwolf абы абака растерялся счетов абаки корм Abalon
отправить тестовый пример, который приводит к бесконечному циклу – njzk2
Он никогда не перестает работать. У меня это работало как 10 минут подряд без результата с файлом с 15 словами. – jmurphy1267
есть. поэтому отправьте тестовый пример. см. http://sscce.org/ – njzk2