Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.08.2018
Сообщений: 46

PrintTree рекурсия

22.08.2018, 08:54. Показов 5250. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята я написала два класса как в новом классе где все выводит написать рекурсию PrintTree чтобы она выводила все элементы пробежавшись по ним.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package tree;
 
class Tree<T> {
 
    private Node<T> root = null;
    
    public Tree(T data) {
        root = new Node(data);
    }
    
    public Node getRoot() {
        return root;
    }
}

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
package tree;
 
import java.util.ArrayList;
import java.util.List;
 
public class Node<T> {
 
    private T data = null;
    private List<Node> children = new ArrayList<>();
    private Node parent = null;
 
    public Node(T data) {
        this.data = data;
    }
 
    public void addChild(T data) {
        Node<T> node = new Node<>(data);        
        node.parent = this;
        children.add(node);
    }
 
    public List<Node> getChildren() {
        return children;
    }
 
    public Node getParent() {
        return parent;
    }
 
    
    public T getData() {
        return data;
    }
 
    public void setData(T data) {
        this.data = data;
    }
 
}
Добавлено через 1 час 15 минут
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2018, 08:54
Ответы с готовыми решениями:

Рекурсия. Рекурсия с мемоизацией. (полная версия в печатном варианте, работа со словами и строками)
Прошу помочь, может было у кого похожее задание, пока выгружу и продолжу выполнять. Буду благодарен любой помощи. Входной текст состоит...

Рекурсия. Рекурсия с мемоизацией.
Добрый день. Задача такова: У нас есть массив для длины строки (пусть будет M=20). У нас есть некие длины слов (колличество не важно пусть...

Рекурсия. Рекурсия с мемоизацией
Добрый день. Задача такова: У нас есть массив для длины строки (пусть будет M=20). У нас есть некие длины слов (колличество не важно пусть...

56
10 / 11 / 2
Регистрация: 10.07.2018
Сообщений: 70
Записей в блоге: 1
22.08.2018, 14:42
Студворк — интернет-сервис помощи студентам
Да уж... Странные люди пошли
Эффективные алгоритмы и структуры данных им не нравятся, нужно только то, что они придумали. Мда.

Добавлено через 2 минуты
Цитата Сообщение от Azrael23 Посмотреть сообщение
он просто попросил чтобы addchild возвращал узел
Так если написать свою реализацию, то такое очень просто сделать. Что ему не нравится?

Добавлено через 3 минуты
И вообще, какой именно узел возвращать? Который добавили? Просто вывести значение, которое добавили. Может, родитель нового узла? Вывести значение вызывающего узла. И всё
0
0 / 0 / 0
Регистрация: 17.08.2018
Сообщений: 46
22.08.2018, 14:43  [ТС]
ManyGames, можете написать свою реализацию, может мой код не подходил к нему.

Добавлено через 1 минуту
ManyGames, да допустим в нашем коде уже в терминатор нельля добавить узел, а надо сделать так чтобы можно было добавить несколько узлов, и этим узлам тоже можно было добавлять
0
10 / 11 / 2
Регистрация: 10.07.2018
Сообщений: 70
Записей в блоге: 1
22.08.2018, 14:45
Так стоп. А что метод-то возвращать должен? Вызывающий узел или тот, который добавили?
0
0 / 0 / 0
Регистрация: 17.08.2018
Сообщений: 46
22.08.2018, 14:48  [ТС]
ManyGames, должен возвращать новый созданный узел
0
10 / 11 / 2
Регистрация: 10.07.2018
Сообщений: 70
Записей в блоге: 1
22.08.2018, 14:50
Понял
скоро (а может и нет) сделаю
Но точно сегодня

Добавлено через 1 минуту
И ещё
Нужно делать вопрос, к какому узлу привязать новый узел?
0
0 / 0 / 0
Регистрация: 17.08.2018
Сообщений: 46
22.08.2018, 14:53  [ТС]
ManyGames, блин я не знаю(
просто сказали с помощью него можно будет добавлять другим объектам узлы, бесконечно. Блин можете пожалуйста сегодня сделать, я вас умоляю((
0
10 / 11 / 2
Регистрация: 10.07.2018
Сообщений: 70
Записей в блоге: 1
22.08.2018, 15:39
Хммм
такс
а насчет старого проекта
мне всё же интересно
тот человек, который заказал это, точно примет что-то другое (в реализации)?
0
22.08.2018, 16:24

Не по теме:

"тот человек" уже понял что автор вовсе не автор кода и просто издевается над ним, почитывая наш форум

0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
22.08.2018, 17:19
Цитата Сообщение от ManyGames Посмотреть сообщение
ArrayList<Node<T>> iterate(){
* * * * ArrayList<Node<T>> res = new ArrayList<>();
* * * * for(Node<T> x: children){
* * * * * * res.add(x);
* * * * }
* * * * return res;
* * }
Зачем этот метод? Ничего, что у каждого х есть свой список children и этот код не выведет все элементы дерева?

Цитата Сообщение от Azrael23 Посмотреть сообщение
попросил чтобы addchild возвращал узел))
Вот так будет возвращать созданный:
Java
1
2
3
4
5
6
7
    public Node<T> addChild(T data) {
        Node<T> node = new Node<>(data);        
        node.parent = this;
        children.add(node);
 
        return node;
    }
0
75 / 61 / 29
Регистрация: 20.04.2015
Сообщений: 415
23.08.2018, 05:51
Лучший ответ Сообщение было отмечено Azrael23 как решение

Решение

странно через майн какая то каша,
ArrayList<Node<T>> iterate(){
* * * * ArrayList<Node<T>> res = new ArrayList<>();
* * * * for(Node<T> x: children){
* * * * * * res.add(x);
* * * * }
* * * * return res;
* * }
почему не использовать интерфейс
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
class Tree<T>  extends Iterable<E>{
 
    private Node<T> root = null;
    
    public Tree(T data) {
        root = new Node(data);
    }
    
    public Node getRoot() {
        return root;
    }
 @Override
    public Iterator<E> iterator() {
        return new Itr();
    }
 private class Itr<E> implements Iterator<E> {
       //реализовать итерацию
 @Override
        public boolean hasNext() {
           //чёто придумать если элементы не все обошли значит тру, иначе фальш
        }
  @Override
        public E next() {
   //возвращает элемент по порядку и переводит каретку  на следующее положение
}
    }
 
 
}
а потом уже смело
Iterator iter = ваше_дерево.iterator(); - и тут вернётся итератор
к которому можно смело обращаться
iter.next();
iter.hashNext();

Добавлено через 9 часов 32 минуты
рекурсия вообще не нужна, надо просто правильно пользоваться очередью...
Java
1
2
3
4
5
6
7
8
 Queue<Node<E>> data = new LinkedList<>();
        data.offer(this.root);
        while (!data.isEmpty()) {
            Node<E> el = data.poll();  //из начала очереди удалили элемент который уже обошли
            System.out.println(el.getData())     //вот обошли его
                      for (Node<E> child : el.getChildren()) {        //в конец очереди добавляем все ссылки вложенного листа и так пока не пройдёшься по всему дереву
                data.offer(child);         
            }
всё делается в один обход
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
23.08.2018, 09:21
Цитата Сообщение от Welemir1 Посмотреть сообщение
вовсе не автор

Не по теме:

это же наш скучающий шизик))

0
23.08.2018, 09:26

Не по теме:

Aviz__, да я понял, его легко узнать по стилю и срочности задач...хотя в этот раз по девочку косит

0
23.08.2018, 09:31

Не по теме:

ну, ManyGames еще хочет всем помочь, что правильно в его возрасте. ManyGames, как видишь не все так идеально, даже в online...

0
10 / 11 / 2
Регистрация: 10.07.2018
Сообщений: 70
Записей в блоге: 1
23.08.2018, 11:49
Цитата Сообщение от Welemir1 Посмотреть сообщение
хотя в этот раз по девочку косит
Цитата Сообщение от Azrael23 Посмотреть сообщение
я написала
Цитата Сообщение от Azrael23 Посмотреть сообщение
я делал по своему
xdd
0
23.08.2018, 11:59

Не по теме:

ManyGames, познакомься с местным обитателем) он постоянно приходит со срочными задачами и ничего не понимает, хочет чтобы все делали за него. Тут тем 15-20 как ему всем форумом матрицы помогали решать.

0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
23.08.2018, 12:04
Цитата Сообщение от Welemir1 Посмотреть сообщение
как ему

Не по теме:

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

0
0 / 0 / 0
Регистрация: 17.08.2018
Сообщений: 46
24.08.2018, 13:02  [ТС]
сорри гайс) я ничего не поняла о чем вы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.08.2018, 13:02

Рекурсия
Я наверно сейчас покажусь тупым, но можете словесно объяснить, что нужно сделать в задаче &quot;Напишите программу, печатающую десятичную...

JS: Рекурсия
function expo( num, ex ) { if( ex === 0 ) { return true; } else { return num * expo( num, --ex ); } } console.log( expo( 2, 3...

Рекурсия
Есть такой код. В нем рисуется что то вроде линейки. Данный код предназначен для иллюстрации работы рекурсии. Может мне кто нибудь...

Рекурсия
Что это такое, я знаю, могу написать рекурсивную функцию по корягам, матрицам, определителям, системам уравнений. Но хотелось бы пример...

Рекурсия
Требуется помощь в решении задачи. ПОЖАЛУЙСТА ПОМОГИТЕ! :cofee2:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
57
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru