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

PrintTree рекурсия

22.08.2018, 08:54. Показов 5077. Ответов 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__
2761 / 2068 / 509
Регистрация: 17.02.2014
Сообщений: 9,499
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__
2761 / 2068 / 509
Регистрация: 17.02.2014
Сообщений: 9,499
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
Ответ Создать тему
Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru