|
|
|
дерево
|
|||
|---|---|---|---|
|
#18+
Всем привет. Задача вывести дерево элементов (язык - обжектив ц) только GUI - никакого поиска и тп. Как отрисовать в общем понятно, проблема в моей алгоритмической подготовке. Буду рад если меня пнут в сторону правильной книжки или статьи иль посоветуют чего нибудь. Все банально: у меня на входе массив обьектов, у которыз есть пара свойств id - parentid. Я строю дерево с помощью функции вида Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Если абстрагироваться от специфики синтаксиса обж Ц то функция проще некуда: на вход кидаем массив и корневой нод и дальше рекурсивно крутим в цикле элементы в поисках детей переданного рута. В моем решении DocNode - обертка над обьектом Doc: нужна чтобы добавить деревянную специфику: parent, children, addChild и тп. Все работает, но у меня ощущение что я изобрел сортировку пузырьком :) Фатазии мне хватило только на то, тобы выкидывать добавляемый элемент из массива, да сделать сортировку входного массива по parent'у. Какие еще бывают решения этой задачи. Как бы вы сделали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 18:34 |
|
||
|
дерево
|
|||
|---|---|---|---|
|
#18+
Раз уж офтоп... Как вообще кому-то в голову мог прийти в голову такой синтаксис для вызова методов? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 18:44 |
|
||
|
дерево
|
|||
|---|---|---|---|
|
#18+
Типа философия посылки сообщений. По первости выносит мозги, но это дело привычки. А по теме что можешь сказать? Деревяшки строить не приходилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 18:48 |
|
||
|
дерево
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyРаз уж офтоп... Как вообще кому-то в голову мог прийти в голову такой синтаксис для вызова методов? Код: plaintext 1. А че это вообще значит? Там оператор пробел переопределен чтоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 19:55 |
|
||
|
дерево
|
|||
|---|---|---|---|
|
#18+
А че это вообще значит?Anatoly MoskovskyРаз уж офтоп... Как вообще кому-то в голову мог прийти в голову такой синтаксис для вызова методов? Код: plaintext 1. А че это вообще значит? Там оператор пробел переопределен чтоли? объекту nodeList посылается сообщение objectAtIndex с параметром i. Чего непонятного-то? Модератор: Тема перенесена из форума "C++". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 21:08 |
|
||
|
дерево
|
|||
|---|---|---|---|
|
#18+
Какие еще бывают решения этой задачи. Как бы вы сделали? В принципе всё правильно. Обход дерева тут не нужен. Ну и информацию эту -- список дочерних узлов в родителе -- лучше наверное сразу сохранить и никогда уже не удалять, и потом по addChild/removeChild поддерживать, потому что если дерево реально большое, то строить его можно достаточно долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 22:11 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37678944&tid=1342416]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 476ms |

| 0 / 0 |
