|
Список слов преобразовать в дерево значений |
☑ |
0
1cnik123
15.06.13
✎
15:38
|
Есть допустим список:
Линейка М-100
Линейка М-100 21
Карандаш П10
Карандаш Белый
Как из такого списка (тз) сделать дерево?
Линейка
-М-100
--21
Карандаш
-П10
-Белый
подскажите алгоритм или запрос...
|
|
1
Alterife
15.06.13
✎
15:53
|
(0) Для начала - отсортировать.
|
|
2
GANR
15.06.13
✎
16:01
|
(0) Посредством рекурсии или массива, заменяющего стек вызовов рекурсивной процедуры. Ночку полежать - алгоритм и придет на ум ))).
|
|
3
1cnik123
15.06.13
✎
16:10
|
(1)(2) будем искать...
|
|
4
ale-sarin
15.06.13
✎
16:37
|
(3) Сразу задумайтесь, что будете делать например с "Бумага писчая А4" и "Бумага писчая А5".
Бумага
- Писчая А4
- Писчая А5
или
Бумага писчая
- А4
- А5.
Т.е. по первому слову или по совпадению слева?
|
|
5
exwill
15.06.13
✎
18:29
|
(4) А (0) почитать внимательно?
|
|
6
mikecool
15.06.13
✎
18:39
|
иерархию сделать в базе и не парить себе моск
|
|
7
Wobland
15.06.13
✎
18:41
|
а ещё можно задаться вопросом "кто породил этоу ТЗ?"
|
|
8
DirecTwiX
15.06.13
✎
18:43
|
а в чем проблема то?
разбиваешь строку по словам, а дальше если находишь элемент в узле, то в узел ставишь найденный и переходишь к следующему слову. Не находишь узла - создаешь свой
Но зачем такое надо? Выглядит бредово
|
|
9
mistеr
15.06.13
✎
18:44
|
(7) Лень-матушка.
|
|
10
1cnik123
15.06.13
✎
19:10
|
(4) должно быть
Бумага
- писчая
--а4
--а5
|
|
11
1cnik123
15.06.13
✎
19:11
|
(8) задача больше алгоритмическая, не для нужд пользователей
|
|
12
Asmody
15.06.13
✎
19:23
|
Процедура СтрокуВДерево(Строка, ДЗ)
Массив = СтрокуВМассив(Строка, "");
УровеньДЗ = ДЗ;
Для каждого элемент из массив цикл
УровеньДЗ = НайтиИлиДобавитьВДерево(элемент);
КонецЦикла;
КонецПроцедуры
недостающее очевидно, сам допишешь
|
|
13
Asmody
15.06.13
✎
19:24
|
пропустил
УровеньДЗ = НайтиИлиДобавитьВДерево(элемент, УровеньДЗ);
|
|
14
1cnik123
15.06.13
✎
19:45
|
(12)НайтиИлиДобавитьВДерево - ты там предлагаешь брать подслово и искать? если не нашли добавили узел?
|
|