Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.04.2015, 22:16
garymar вне форума Посмотреть профиль Отправить личное сообщение для garymar Найти все сообщения от garymar
  № 11  
Ответить с цитированием
garymar

Регистрация: Sep 2010
Сообщений: 81
Почитай про паттерн Компоновщик (Composite). Хотя я до сих пор не въеха в суть, что ты в итоге хочешь. Никакой конкретики.

Старый 12.04.2015, 01:06
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 12  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
garymar, ТС хочет увидеть дерево визуально.
__________________
There is no thing in this world that is not simple.

Старый 12.04.2015, 04:31
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 13  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
для обхода дерева лучше всего подходит паттерн Visitor

Старый 12.04.2015, 21:23
garymar вне форума Посмотреть профиль Отправить личное сообщение для garymar Найти все сообщения от garymar
  № 14  
Ответить с цитированием
garymar

Регистрация: Sep 2010
Сообщений: 81
Цитата:
Сообщение от Nooob Посмотреть сообщение
для обхода дерева лучше всего подходит паттерн Visitor
Посетитель сюда не совсем подойдет. Это поведенческий паттерн. В Компоновщике (структурный паттерн) никто не запрещает реализовать в каждом элементе дерева (и ветках и листьях) метод использующий технику рекурсивного обхода дерева.

Старый 12.04.2015, 21:40
OlmerDale вне форума Посмотреть профиль Отправить личное сообщение для OlmerDale Найти все сообщения от OlmerDale
  № 15  
Ответить с цитированием
OlmerDale
[+1 09.05.15]

Регистрация: Jan 2015
Сообщений: 113
Nooob, а можете привести минимальный пример, а то очень интересно.

garymar, да я понимаю что тут композиция нужна для нод, но сложность не в
создании нод, а в идентичном построении.

Я уже отказался от построения в один проход. Мне кажется что этот график строился
по физическим законам, так как других объяснений я найти не могу. Пример на самом деле
безумно сложный.

Старый 13.04.2015, 01:55
garymar вне форума Посмотреть профиль Отправить личное сообщение для garymar Найти все сообщения от garymar
  № 16  
Ответить с цитированием
garymar

Регистрация: Sep 2010
Сообщений: 81
Цитата:
Сообщение от OlmerDale Посмотреть сообщение
garymar, да я понимаю что тут композиция нужна для нод, но сложность не в
создании нод, а в идентичном построении.
Если ты тупо хочешь повторить дерево на картинке из твоего первого сообщения (насколько я правильно понял), то тебе нужно изначально представлять дерево в каком-то формате, затем его парсить и выводить как граф. По словами "изначально представлять дерево" я хотел сказать, что тебе нужно задать исходные данные. Ну вот например JSON или XML или HTML, я хз... Если я правильно тебя понял.

Вот пример из JSON дерева на твоей картинке:

Код AS3:
{
    "root": {
        "branch_1": {
            "leaf_1": "Hello world"
        },
        "leaf_1": "Hello world",
        "leaf_2": "Hello world",
        "branch_2": {
            "leaf_1": "Hello world",
            "leaf_2": "Hello world",
            "leaf_3": "Hello world",
            "leaf_4": "Hello world",
            "leaf_5": "Hello world"
        },
        "branch_3": {
            "leaf_1": "Hello world",
            "leaf_2": "Hello world",
            "leaf_3": "Hello world",
            "leaf_4": "Hello world",
            "leaf_5": "Hello world",
            "leaf_6": "Hello world"
        },
        "leaf_3": "Hello world"
    }
}
Или вот XML:

Код AS3:
<root>
    <branch>
        <leaf/>
    </branch>
    <leaf/>
    <leaf/>
    <branch>
        <leaf/>
        <leaf/>
        <leaf/>
        <leaf/>
        <leaf/>
    </branch>
    <branch>
        <leaf/>
        <leaf/>
        <leaf/>
        <leaf/>
        <leaf/>
        <leaf/>
    </branch>
    <leaf/>
</root>
Вот тебе диаграмма классов http://prntscr.com/6t0gnr


Последний раз редактировалось garymar; 16.04.2015 в 02:53.
Старый 14.04.2015, 21:30
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 17  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Алгоритмы построения поуровневого изображения деревьев
__________________
Reality.getBounds(this);

Старый 15.04.2015, 01:11
OlmerDale вне форума Посмотреть профиль Отправить личное сообщение для OlmerDale Найти все сообщения от OlmerDale
  № 18  
Ответить с цитированием
OlmerDale
[+1 09.05.15]

Регистрация: Jan 2015
Сообщений: 113
Wolsh спасибо за ссылку и сорри за первые комменты.
Расписано вполне доступно, а главное русским языком написано что - за один проход не получится и хватит пытаться Конечно есть небольшие разности, но если что, то можно и третий проход сделать..

Старый 16.04.2015, 00:02
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 19  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
OlmerDale, деревья очень хитрая штука. С ними нужно аккуратно, а то заведут в лес.
Вот, скажем, garymar не знает, что такое рекурсия и демонстрирует свои слабые знания в открытую:

Цитата:
Сообщение от garymar Посмотреть сообщение
В ... Компоновщике (структурный паттерн) никто не запрещает реализовать в каждом элементе дерева (и ветках и листьях) метод использующий технику рекурсивного обхода дерева.
На дереве рекурсия немного не подпадает под определение:
Цитата:
В программировании рекурсия — вызов функции (процедуры) из неё же самой
Я сам пару лет понемногу занимаюсь деревьями. В контексте их эффективного рендеринга в Stage3D. Многое переосмыслил.

Сходил по ссылке, сразу напрягло
Цитата:
В 1979 году C. Wetherell и A. Shannon представили алгоритм линейной сложности для рисования бинарных деревьев
И тут же на рисунках показывают небинарное дерево. Бинарное тут.
Цитата:
Двои́чное де́рево — иерархическая структура данных, в которой каждый узел имеет не более двух потомков
Глупый источник, негодный.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 16.04.2015 в 00:48.
Старый 16.04.2015, 01:00
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 20  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
И тут же на рисунках показывают небинарное дерево.
Но, если прочитать не только первое предложение, а и то, которое собственно предшествует рисунку, то получится
Цитата:
В 1990 году Walker обобщил алгоритм Рейнгольда-Тилфорда, предложив алгоритм построения поуровневого изображения упорядоченных деревьев произвольной степени.
Бинарное же дерево рассматривается в соответствующей главе.
__________________
Reality.getBounds(this);

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:32.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.