Arhn - архитектура программирования

Поиск наибольшей и наименьшей длины пути в каталоге дерева Java

У меня возникли проблемы с проблемой, связанной с деревом каталогов и поиском наименьшего и наибольшего пути длины в этом дереве. Проблема в следующем:

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

Например, строка со следующим содержимым:

dir1
-file1
-file2
-innerDir1
--file11
--file12
--file13
--innerinnerDir1
---file111
-innerDir2
--file21

показывает, что file1, file2, innderDir1 и innderDir2 находятся в каталоге dir1. file11, file12, file13 и innerinnerDir1 находятся в каталоге innerDir1.

Путь к файлу "dir1/" явно является кратчайшим путем, где "dir1/innerDir1/innerinnerDir1/file111" явно является самым длинным путем (измеряемым по длине строки).

Из моей работы я понимаю, что это проблема дерева, в частности, проблема дерева каталогов. Итак, я пробовал 2 рекурсивных метода: один находит максимум, другой находит минимум.

Однако я не могу понять, как это сделать. Наличие «-» определяет, какие каталоги/файлы находятся в каких каталогах, что меня смущает. У меня также реализована базовая древовидная структура (см. код ниже). Как я могу построить дерево по строке? Должен ли я не беспокоиться о построении дерева, а затем обходить его, а вместо этого просто попытаться найти минимум и максимум без использования структуры дерева?

Код дерева:

public class Tree<T> {
    private Node<T> root;

    public Tree(T rootData) {
        root = new Node<T>();
        root.data = rootData;
        root.children = new ArrayList<Node<T>>();
    }

    public static class Node<T> {
        private T data;
        private Node<T> parent;
        private List<Node<T>> children;
    }
}

  • Является ли dir1 полным путем? Кажется странным спрашивать о кратчайшем пути, если ответ всегда просто корень вашего дерева... 15.11.2015
  • Извините, спасибо, что попросили разъяснения. Мы пытаемся найти наименьший путь, не включающий корень. 15.11.2015

Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..