Создание бинарного дерева из текстового файла, написанного в предзаказе - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть серия узлов дерева, сохраненных в текстовом файле в предзаказе. Для создания дерева у меня есть класс TreeNode, который содержит полезную нагрузку узлов и TreeNode для левого и правого, если это не лист.

class TreeNode{
    private String payload;
    private TreeNode left;
    private TreeNode right;

    public TreeNode(String payload){
        this.payload = payload;
        this.left = null;
        this.right = null;
    }

    public TreeNode(String payload, TreeNode left, TreeNode right){
        this.payload = payload;
        this.left = left;
        this.right = right;
    }

    public void setLeft(TreeNode left){
        this.left = left;
    }

    public void setRight(TreeNode right){
        this.right = right;
    }
}

Мне нужно иметь возможность взять строки из текста файл (которые являются «полезной нагрузкой» для каждого узла) и заново создайте дерево из них. Я считаю, что лучший способ сделать это - использовать рекурсивную функцию, подобную той, которая используется для обхода созданного дерева в предварительном порядке, однако я не могу понять, как это сделать. Код, который у меня есть для получения строк из текстового файла, сохраняет их в переменной после прочтения каждой строки. Я сделал это, потому что полагал, что это облегчит работу с данными, так как я не очень хорошо знаком с чтением текстовых файлов в java.

public TreeNode loadTree(){

    File file = new File("suggestions.txt");

    try {
        BufferedReader reader = new BufferedReader(new FileReader(file));
        String line;
        int len = 0;
        while ((line = reader.readLine()) != null) {
            len++;
        }
        int pos = 0;
        String[] lines = new String[len];
        while ((line = reader.readLine()) != null) {
            lines[pos] = lines;
            pos++;
        }

    } catch (IOException e){
          e.printStackTrace();
    }
}

Я относительно новичок в Java, поэтому я извиняюсь за любой глупый код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...