powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Структура данных
25 сообщений из 106, страница 2 из 5
Структура данных
    #39687825
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaValentin Kolesnikov,

Я все решила проблему))
Можно спросить что здесь выводит
Код: java
1.
2.
3.
4.
found for name - 1
found for name1 - 0
found for name in tree - 1
found for name in tree 2 - 2



Это результат поиска по имени ноды.

Для name сначала находит одну году, потом две.

С уважением, Валентин
...
Рейтинг: 0 / 0
Структура данных
    #39687829
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov,

Как такую дерево структуры сделать( я только наверное после этого пойму как работает структура данных( можете помочь пожалуйста. Я вот только чуть чуть понимать начала, потом придумала пример и после примера я наверное пойму как это все работает) можете помочь пожалуйста создать такую дерево структуру)
...
Рейтинг: 0 / 0
Структура данных
    #39687838
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaValentin Kolesnikov,

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

Нужно переименовать Tree в Directory, Node в File. Создать каталоги/файлы и добавить их друг в друга в соответствии со структурой.

С уважением, Валентин
...
Рейтинг: 0 / 0
Структура данных
    #39687841
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov,

Можете помочь реализовать, просто после этого примера я смогу понять как это все работает, пожалуйста помогите сделать задачу(
...
Рейтинг: 0 / 0
Структура данных
    #39687887
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaValentin Kolesnikov,

Можете помочь реализовать, просто после этого примера я смогу понять как это все работает, пожалуйста помогите сделать задачу(

Вот такое решение:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
Main.java

package tree;

public class Main {

    public static void main(String[] args) {
        Directory rootFolder = new Directory("RootFolder", null);
        Directory video = new Directory("Video", null);
        Directory music = new Directory("Music", null);
        Directory picture = new Directory("Picture", null);
        rootFolder.add(video);
        rootFolder.add(music);
        rootFolder.add(picture);
        File terminator = new File("Terminator", null);
        File dieHard = new File("Die Hard", null);
        File rocky = new File("Rocky", null);
        File abba = new File("Abba", null);
        video.add(terminator);
        video.add(dieHard);
        video.add(rocky);
        music.add(abba);
        Directory homePicture = new Directory("Home picture", null);
        Directory workPicture = new Directory("Work picture", null);
        picture.add(homePicture);
        picture.add(workPicture);

        int foundForNameInDirectory = rootFolder.findByName("Abba").size();
        System.out.println("found for name in directory - " + foundForNameInDirectory);
    }
}

Entry.java:

package tree;

import java.util.*;

public abstract class Entry {
    private final Directory parent;
    private String name;

    public Entry(String name, Directory parent) {
        this.name = name;
        this.parent = parent;
    }

    public boolean delete() {
        if (parent == null) {
            return false;
        }
        return parent.remove(this);
    }

    public abstract long size();

    public String getFullPath() {
        if (parent == null) {
            return name;
        } else {
            return parent.getFullPath() + "/" + name;
        }
    }

    public void changeName(String newName) {
        this.name = newName;
    }

    public String getName() {
        return name;
    }

    public List<Entry> findByName(final String name) {
        final List<Entry> result = new ArrayList<Entry>();
        final Queue<Entry> allFiles = new LinkedList<Entry>();
        allFiles.add(this);
        while (!allFiles.isEmpty()) {
            final Entry localEntry = allFiles.poll();
            if (localEntry instanceof Directory) {
                final List<Entry> files = ((Directory) localEntry).iterate();
                for (final Entry innerFile : files) {
                    if (innerFile instanceof Directory) {
                        allFiles.add(innerFile);
                    } else if (innerFile.getName().equals(name)) {
                        result.add(innerFile);
                    }
                }
            } else if (localEntry.getName().equals(name)) {
                result.add(localEntry);
            }
        }
        return result;
    }
}

File.java:

package tree;

public class File extends Entry {
    private final java.io.ByteArrayOutputStream stream;

    public File(String name, Directory parent) {
        super(name, parent);
        this.stream = new java.io.ByteArrayOutputStream();
    }

    public long size() {
        return stream.size();
    }

    public byte[] getContents() {
        return stream.toByteArray();
    }

    public void setContents(byte[] content) {
        this.stream.write(content, 0, content.length);
    }
}

Directory.java:

package tree;

import java.util.ArrayList;
import java.util.List;

public class Directory extends Entry {
    private final List<Entry> contents;

    public Directory(String name, Directory directory) {
        super(name, directory);
        contents = new ArrayList<Entry>();
    }

    protected List<Entry> iterate() {
        return contents;
    }

    public long size() {
        long size = 0;
        for (final Entry entry : contents) {
            size += entry.size();
        }
        return size;
    }

    public boolean remove(Entry entry) {
        return contents.remove(entry);
    }

    public void add(Entry entry) {
        contents.add(entry);
    }
}



С уважением, Валентин
...
Рейтинг: 0 / 0
Структура данных
    #39687889
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov,

Спасибо большое))) вот теперь поняла как работает все там) спасибо вам большое))))
...
Рейтинг: 0 / 0
Структура данных
    #39687894
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov,

можно спросить у меня выводит в компиляторе -
found for name in directory - 1

так должно выводить?
...
Рейтинг: 0 / 0
Структура данных
    #39687896
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaValentin Kolesnikov,

можно спросить у меня выводит в компиляторе -
found for name in directory - 1

так должно выводить?

Да, должно выводить found for name in directory - 1.

С уважением, Валентин
...
Рейтинг: 0 / 0
Структура данных
    #39688002
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov,

Блин( мне сказали что это не дерево, сказали чтобы я создал дерево без файлов и директории( использовав node. Я запуталась((
...
Рейтинг: 0 / 0
Структура данных
    #39688032
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaсоздал деревоопять спалился))
...
Рейтинг: 0 / 0
Структура данных
    #39688049
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

я просто быстро печатаю, и из за этого(
...
Рейтинг: 0 / 0
Структура данных
    #39688050
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

голова кругом гнать начала, запуталась(
...
Рейтинг: 0 / 0
Структура данных
    #39688057
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

плюс я одна в группе среди пацанов, бывает с ними так для прикола общаюсь
...
Рейтинг: 0 / 0
Структура данных
    #39688066
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня с самого начала был вопрос, что же Вы хотите сделать.

обычное бинарное дерево / Tree (только две ветки в узле), B-Tree (оптимизированное для хранение на внешних устройствах, несколько node в одном узле, обычно ограничивают размером блока на внешнем устройстве), сбалансированное B-Tree.....

В общем то, B-Tree достаточно сложная структура, если еще и балансировкой заниматься.

IMHO
...
Рейтинг: 0 / 0
Структура данных
    #39688069
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaплюс я одна в группе среди пацанов, бывает с ними так для прикола общаюсьтогда очень странно - у нас девчонок было было чуть больше, но никто не отказывал им в помощи. мальчики нормальной ориентации?
...
Рейтинг: 0 / 0
Структура данных
    #39688072
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaValentin Kolesnikov,

Блин( мне сказали что это не дерево, сказали чтобы я создал дерево без файлов и директории( использовав node. Я запуталась((не понял.
Т.е. дерево это не файловая система, а например сущность Музыкальный альбом?
Тогда в node дерева прописывать классы альбома и в сами классы поле PatchDirectory путь к файлу.
Imho
...
Рейтинг: 0 / 0
Структура данных
    #39688083
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

просто у меня в группе парни каждый сам за себя(
препод ничего не объясняет. Сама где то копаюсь в интернете ищу что то, читаю и так далее. Просто почему я как пацан иногда общаюсь, просто привычка вуза, в группе чтобы быть ближе к пацанам общаюсь на их языке как пацан
...
Рейтинг: 0 / 0
Структура данных
    #39688086
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

мне сказали, что нужно сделать дерево с node, но тот код с директорией и файлами не правильный (сказали похоже, но это не дерево) блин я три дня пытаюсь дерево понять, вроде бы сегодня чуточку поняла но сказали что не правильно, нужно сделать по другому. Хочу дома поделать сама, брат со своими игрой в футбол не дает компьютер
...
Рейтинг: 0 / 0
Структура данных
    #39688087
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nastyaa,

со своей игрой в футбол(
...
Рейтинг: 0 / 0
Структура данных
    #39688089
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

можете написать код пожалуйста( я честно уже запуталась в край((( от однокурсников толку нету каждый сам за себя((
...
Рейтинг: 0 / 0
Структура данных
    #39688114
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Деревья бывают разные. А что именно от Вас хочет преподавать, кто же его знает )))

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

IMHO

p.s. В свое время, когда этим интересовался, меня отсылали к 3-ему тому Кнута. AFAIK наиболее классическая и авторитетная книжка.
https://www.ozon.ru/context/detail/id/2527036/
...
Рейтинг: 0 / 0
Структура данных
    #39688120
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только при личном общении за кружкой пива
https://yandex.ru/maps/org/what_if/150498964266/

Думаю, после пары литров, как объяснить преподавателю, что он не прав, я Вас научу ))) Ну и заодно какие бывают классические типы деревья, зачем их балансируют и прочее....

p.s. кстате, бармен-девушка, тоже на IT пытается учиться. После 0.5 литров JAWS Атомной прачечной вполне на двоих сообразили, как дроби из 10 в 2 систему переводить )))
Но для деревьев 0.5 явно не хватит )))
...
Рейтинг: 0 / 0
Структура данных
    #39688135
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

Я из Ростова) если бы была в Питере то другое дело)
...
Рейтинг: 0 / 0
Структура данных
    #39688144
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaLeonid Kudryavtsev,

Я из Ростова) если бы была в Питере то другое дело)ну вот((.
А раньше Ломоносов...пешком! .....)))
...
Рейтинг: 0 / 0
Структура данных
    #39688145
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://yandex.ru/maps/org/sport_bar_yersh/1699737362/ ?

p.s.
но цены на билеты сейчас запредельные (((
...
Рейтинг: 0 / 0
25 сообщений из 106, страница 2 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Структура данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]