Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2018, 08:44   #1
Nastya2018
Форумчанин
 
Регистрация: 24.07.2018
Сообщений: 133
По умолчанию про Datatype

Ребята я написала код структуры данных (иерархия) нужно было создать класс "Tree " с datattpe (string (можно было object добавлять))
с функциями add, remove, search, iterate посмотрите код я правильно написала если нет можете подправить)?

Код:
package tree;

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


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;
    }
}
Nastya2018 вне форума Ответить с цитированием
Старый 14.08.2018, 08:56   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Nastya2018 Посмотреть сообщение
нужно было создать класс "Tree " с datattpe (string (можно было object добавлять))
с функциями add, remove, search, iterate
Цитата:
Сообщение от Nastya2018 Посмотреть сообщение
посмотрите код я правильно написала
про Datatype - Общие вопросы по Java, Java SE, Kotlin - Форум программистов - Mozilla Firefox 20.png
—>
нет.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.08.2018, 08:58   #3
Nastya2018
Форумчанин
 
Регистрация: 24.07.2018
Сообщений: 133
По умолчанию

можете помочь исправить(
Nastya2018 вне форума Ответить с цитированием
Старый 14.08.2018, 09:13   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Что исправить то? Вы задание прочитайте - вам надо реализовать 4 функции. Вы ни одну не реализовали.
p51x вне форума Ответить с цитированием
Старый 15.08.2018, 07:18   #5
Nastya2018
Форумчанин
 
Регистрация: 24.07.2018
Сообщений: 133
По умолчанию Посмотрите правильно ли я реализовала?

Main.java:

package tree;

public class Main {

public static void main(String[] args) {
Node node = new Node("name", null, 0L);
int foundForName = node.findByName("name").size();
int foundForName1 = node.findByName("name1").size();
System.out.println("found for name - " + foundForName);
System.out.println("found for name1 - " + foundForName1);

Tree tree = new Tree("name", null);
tree.add(node);
int foundForNameInTree = tree.findByName("name").size();
System.out.println("found for name in tree - " + foundForNameInTree);

Tree tree2 = new Tree("name", null);
tree2.add(node);
tree.add(tree2);
int foundForNameInTree2 = tree.findByName("name").size();
System.out.println("found for name in tree 2 - " + foundForNameInTree2);

}
}

Entry.java:

package tree;

import java.util.*;

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

public Entry(String name, Tree 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 Tree) {
final List<Entry> files = ((Tree) localEntry).iterate();
for (final Entry 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;
}
}

Node.java:

package tree;

public class Node extends Entry {
private final java.io.ByteArrayOutputStream stream;
private final long size;

public Node(String name, Tree parent, long size) {
super(name, parent);
this.size = size;
this.stream = new java.io.ByteArrayOutputStream();
}

public long size() {
return size;
}

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

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

Tree.java:

package tree;

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

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

public Tree(String name, Tree tree) {
super(name, tree);
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);
}
}
Nastya2018 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Топик НЕ про политику, а про розовые миры в наших головах rpy3uH Свободное общение 30 11.02.2015 09:38
Негативные анекдоты про Россию и про всё в ней происходящее... Ваше мнение? Вадим Мошев Свободное общение 16 26.09.2011 08:02
[Turbo Pascal] - задачи про подбрасывание монеты и про определение истины. Sent Tools Помощь студентам 10 28.10.2010 18:11
выставить в DataType Михаил Юрьевич БД в Delphi 2 28.12.2008 17:40
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24