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

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

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

я спросила у него он сказал, чтобы они были равнозначными нодами, а не делились на директории и файлы
...
Рейтинг: 0 / 0
Структура данных
    #39688249
Фотография 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.
Main.java:

package tree;

public class Main {

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

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

Node.java:

package tree;

import java.util.*;

public class Node {
    private final Tree parent;
    private String name;

    public Node(String name, Tree parent) {
        this.name = name;
        this.parent = parent;
    }

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

    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<Node> findByName(final String name) {
        final List<Node> result = new ArrayList<Node>();
        final Queue<Node> allFiles = new LinkedList<Node>();
        allFiles.add(this);
        while (!allFiles.isEmpty()) {
            final Node localEntry = allFiles.poll();
            if (localEntry instanceof Tree) {
                final List<Node> files = ((Tree) localEntry).iterate();
                for (final Node innerFile : files) {
                    if (innerFile instanceof Tree) {
                        allFiles.add(innerFile);
                    } else if (innerFile.getName().equals(name)) {
                        result.add(innerFile);
                    }
                }
            } else if (localEntry.getName().equals(name)) {
                result.add(localEntry);
            }
        }
        return result;
    }
}

Tree.java:

package tree;

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

public class Tree extends Node {
    private final List<Node> contents;

    public Tree(String name, Tree tree) {
        super(name, tree);
        contents = new ArrayList<Node>();
    }

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

    public boolean remove(Node node) {
        return contents.remove(node);
    }

    public void add(Node node) {
        contents.add(node);
    }
}



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

Спасибо вам)))
...
Рейтинг: 0 / 0
Структура данных
    #39688463
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov,
Я поменяла чуток код так как вы сделали четыре дерева, я оставила один RootFOlder, а остальные сделала Noda-ми посмотрите правильный ли код. Я там в одном месте вопрос поставила можете дописать код пожалуйста((
Код: 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.
package tree;



public class Main {

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

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


-----------------

package tree;

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

public class Tree extends Node {
    private Node rootNode;
    

    public Tree(String name, Tree tree) {
        super(name, tree);
        contents = new ArrayList<>();
    }

    

    public boolean remove(Node node) {
        return contents.remove(node);
    }

    public void add(Node node) {
        contents.add(node);
    }
}
------------

package tree;


import java.util.*;

public class Node {
    private final Node parent;
    private String name;
    private final List<Node> contents;

    public Node(String name, Tree parent) {
        this.name = name;
        this.parent = parent;
    }
    protected List<Node> iterate() {
        return contents;
    }

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

    public void add(Node node); ??????
    
    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<Node> findByName(final String name) {
        final List<Node> result = new ArrayList<Node>();
        final Queue<Node> allFiles = new LinkedList<Node>();
        allFiles.add(this);
        while (!allFiles.isEmpty()) {
            final Node localEntry = allFiles.poll();
            if (localEntry instanceof Tree) {
                final List<Node> files = ((Tree) localEntry).iterate();
                for (final Node innerFile : files) {
                    if (innerFile instanceof Tree) {
                        allFiles.add(innerFile);
                    } else if (innerFile.getName().equals(name)) {
                        result.add(innerFile);
                    }
                }
            } else if (localEntry.getName().equals(name)) {
                result.add(localEntry);
            }
        }
        return result;
    }
}
...
Рейтинг: 0 / 0
Структура данных
    #39688464
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nastyaa,

где я поставила вопрос в коде
там будет
Код: java
1.
contents.add(node);

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

где я поставила вопрос в коде
там будет
Код: java
1.
contents.add(node);

????

Код: java
1.
private final List<Node> contents;



и

Код: java
1.
2.
3.
4.
public void add(Node node) {
        contents.add(node);
    }
}



должны быть внутри Tree.

С уважением, Валентин
...
Рейтинг: 0 / 0
Структура данных
    #39688489
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin 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.
package tree;



public class Main {

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

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



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
package tree;

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

public class Tree extends Node {
    private Node rootNode;
    

    public Tree(String name, Tree tree) {
        super(name, tree);
        contents = new ArrayList<>();
    }

    

    public boolean remove(Node node) {
        return contents.remove(node);
    }

    
    
}



Код: 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.
package tree;


import java.util.*;

public class Node {
    private final Node parent;
    private String name;
    private final List<Node> contents;
    public void add(Node node) {
        contents.add(node);
    }

    public Node(String name, Tree parent) {
        this.name = name;
        this.parent = parent;
    }
    protected List<Node> iterate() {
        return contents;
    }

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

   
    
    
    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<Node> findByName(final String name) {
        final List<Node> result = new ArrayList<Node>();
        final Queue<Node> allFiles = new LinkedList<Node>();
        allFiles.add(this);
        while (!allFiles.isEmpty()) {
            final Node localEntry = allFiles.poll();
            if (localEntry instanceof Tree) {
                final List<Node> files = ((Tree) localEntry).iterate();
                for (final Node innerFile : files) {
                    if (innerFile instanceof Tree) {
                        allFiles.add(innerFile);
                    } else if (innerFile.getName().equals(name)) {
                        result.add(innerFile);
                    }
                }
            } else if (localEntry.getName().equals(name)) {
                result.add(localEntry);
            }
        }
        return result;
    }
}
...
Рейтинг: 0 / 0
Структура данных
    #39688490
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov,

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

как можно в class Tree добавить Getroot

Можно добавить такой метод, он будет искать самую верхнюю ноду у parent.

nastyaa мне тоже нужна помощь.

Конвертор xml в json сможете протестировать у себя?

https://github.com/javadev/underscore-java/releases/download/test/example.jar

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

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

как протестировать?

Запустить у себя и сконвертировать xml в json.

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

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

Нужно одно дерево, из за этого я остальные сделала Noda-ми и почему то не работает плюс не смогла написать get
Код: 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.
package tree;



public class Main {

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

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



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
package tree;

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

public class Tree extends Node {
    private Node rootNode;
    

    public Tree(String name, Tree tree) {
        super(name, tree);
        contents = new ArrayList<>();
    }

    

    как сюда добавить getRoot

    
    
} 



Код: 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.
package tree;


import java.util.*;

public class Node {
    private final Node parent;
    private String name;
    private final List<Node> contents;
    
    public void add(Node node) {
        contents.add(node);
    }
    public boolean remove(Node node) {
        return contents.remove(node);
    }
    public Node(String name, Tree parent) {
        this.name = name;
        this.parent = parent;
    }
    protected List<Node> iterate() {
        return contents;
    }

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

   
    
    
    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<Node> findByName(final String name) {
        final List<Node> result = new ArrayList<Node>();
        final Queue<Node> allFiles = new LinkedList<Node>();
        allFiles.add(this);
        while (!allFiles.isEmpty()) {
            final Node localEntry = allFiles.poll();
            if (localEntry instanceof Tree) {
                final List<Node> files = ((Tree) localEntry).iterate();
                for (final Node innerFile : files) {
                    if (innerFile instanceof Tree) {
                        allFiles.add(innerFile);
                    } else if (innerFile.getName().equals(name)) {
                        result.add(innerFile);
                    }
                }
            } else if (localEntry.getName().equals(name)) {
                result.add(localEntry);
            }
        }
        return result;
    }
}
...
Рейтинг: 0 / 0
Структура данных
    #39688517
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaa,

private final List<Node> contents;


и

public void add(Node node) {
contents.add(node);
}
}


должны быть внутри Tree.

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

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

мне сказали, чтобы они были в Node(
а в Tree (в дереве) метод getRoot

contents = new ArrayList<>();

Можно тогда перенести в конструктор Node.

Метод getRoot напишу, когда доберусь до компьютера.

С уважением, Валентин
...
Рейтинг: 0 / 0
Структура данных
    #39688532
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin 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.
package tree;


import java.util.*;

public class Node {
    private final Node parent;
    private String name;
    private final List<Node> contents;
     
    public Node(String name, Node node) {
        super(name, node);
        contents = new ArrayList<>();
    }
    
    public void add(Node node) {
        contents.add(node);
    }
    public boolean remove(Node node) {
        return contents.remove(node);
    }
    public Node(String name, Tree parent) {
        this.name = name;
        this.parent = parent;
    }
    protected List<Node> iterate() {
        return contents;
    }

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

   
    
    
    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<Node> findByName(final String name) {
        final List<Node> result = new ArrayList<Node>();
        final Queue<Node> allFiles = new LinkedList<Node>();
        allFiles.add(this);
        while (!allFiles.isEmpty()) {
            final Node localEntry = allFiles.poll();
            if (localEntry instanceof Tree) {
                final List<Node> files = ((Tree) localEntry).iterate();
                for (final Node innerFile : files) {
                    if (innerFile instanceof Tree) {
                        allFiles.add(innerFile);
                    } else if (innerFile.getName().equals(name)) {
                        result.add(innerFile);
                    }
                }
            } else if (localEntry.getName().equals(name)) {
                result.add(localEntry);
            }
        }
        return result;
    }
}
...
Рейтинг: 0 / 0
Структура данных
    #39688565
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaa,

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

Код: 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.
Main.java:

package tree;

public class Main {

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

        Node rootNode = workPicture.getRoot();
        System.out.println("root node name - " + rootNode.getName());
        // root node name - RootFolder
    }
}



Tree.java:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
package tree;

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

public class Tree extends Node {
...
    public Node getRoot() {
        if (getParent() == null) {
            return null;
        }
        Node parent = getParent();
        while (parent.getParent() != null) {
            parent = parent.getParent();
        }
        return parent;
    }
}



Node.java:

Код: java
1.
2.
3.
4.
5.
6.
7.
public class Node {
...
    protected Node getParent() {
        return parent;
    }
...
}



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

Извините помните я переделала код сделала одно дерево rootFolder. Как сделать так чтобы video music picture были нодами(
Код: 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.
Main.java:

package tree;

public class Main {

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

        Node rootNode = workPicture.getRoot();
        System.out.println("root node name - " + rootNode.getName());
        // root node name - RootFolder
    }
}
...
Рейтинг: 0 / 0
Структура данных
    #39688618
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin 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.
package tree;


import java.util.*;

public class Node {
    private final Node parent;
    private String name;
    private final List<Node> contents;
    protected Node getParent() {
        return parent;
     
    public Node(String name, Node node) {
        super(name, node);
        contents = new ArrayList<>();
    }
    
    public void add(Node node) {
        contents.add(node);
    }
    public boolean remove(Node node) {
        return contents.remove(node);
    }
    public Node(String name, Tree parent) {
        this.name = name;
        this.parent = parent;
    }
    protected List<Node> iterate() {
        return contents;
    }

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

   
    
    
    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<Node> findByName(final String name) {
        final List<Node> result = new ArrayList<Node>();
        final Queue<Node> allFiles = new LinkedList<Node>();
        allFiles.add(this);
        while (!allFiles.isEmpty()) {
            final Node localEntry = allFiles.poll();
            if (localEntry instanceof Tree) {
                final List<Node> files = ((Tree) localEntry).iterate();
                for (final Node innerFile : files) {
                    if (innerFile instanceof Tree) {
                        allFiles.add(innerFile);
                    } else if (innerFile.getName().equals(name)) {
                        result.add(innerFile);
                    }
                }
            } else if (localEntry.getName().equals(name)) {
                result.add(localEntry);
            }
        }
        return result;
    }
}
...
Рейтинг: 0 / 0
Структура данных
    #39688686
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaa, навскидку...

В одном месте у вас parent это Node
Код: java
1.
    private final Node parent;



В другом уже Tree
Код: java
1.
2.
3.
4.
    public Node(String name, Tree parent) {
        this.name = name;
        this.parent = parent;
    }




В третьем коллекция или массив
Код: java
1.
2.
3.
4.
    public boolean delete() {
 ...
        return parent.remove(this);
    }



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

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

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

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


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