отсортированное двоичное дерево с рекурсией - PullRequest
0 голосов
/ 16 сентября 2018

Мне нужна помощь с этим кодом. кажется, что он застрял в бесконечном цикле, но не показывает ошибку переполнения стека или ошибку нулевого указателя. bt - это двоичное дерево, а db - это база данных. Мне дали задание создать это несбалансированное дерево путем рекурсивного поиска в массиве (дБ).

public void createSortedBT(){
    if(bt.isEmpty()){
        bt.setContent(db.getCountry(db.getArray().length-1));
        createSortedBT2(db.getArray().length-1, bt);
    }
}

private void createSortedBT2(int index, BinaryTree<Country> cNode){
    while(index >= 0){           
        if(db.getCountry(index).isLess(cNode.getContent())){
            if(cNode.getLeftTree().isEmpty()){
                cNode.getLeftTree().setContent(db.getCountry(index));
            }else{
                createSortedBT2(index, cNode.getLeftTree());
            }
        }

        if(db.getCountry(index).isGreater(cNode.getContent())){
            if(cNode.getRightTree().isEmpty()){
                cNode.getRightTree().setContent(db.getCountry(index));
            }else{
                createSortedBT2(index, cNode.getRightTree());
            }
        }
        index--;
        cNode = bt;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...