![]() |
|
Модераторы: bsa |
![]()
|
|
| avlzll |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 30.11.2007 Репутация: нет Всего: нет |
День добрый. При реализации дерева цифрового поиска столкнулся с небольшой проблемкой.
А именно. Имеется структура вида:
И соответственно функция добавления в дерево.
Все это дело успешно работает. Без ошибок. Дерево строится, но ... как видно, структура не хранит букв. Хотелось бы добавить в функцию AddToTrie() возможность писать еще и саму букву s[i] в структуру. Реализовать это по-человечески не получается. Буду благодарен любым советам. Спасибо. Это сообщение отредактировал(а) avlzll - 24.11.2008, 19:14 |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Зачем тебе буква? Она и так уже есть неявно - в виде индекса в childList
Единственное, что у тебя не сохраняется - это признак конца слова. Для него можно завести переменную типа bool в самом trieNode Кстати, trie делают для скорости, а такие циклы
Это сообщение отредактировал(а) xvr - 25.11.2008, 11:32 |
|||
|
||||
| avlzll |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 30.11.2007 Репутация: нет Всего: нет |
Да мне надо вывести все дерево на экран и никак не додумаюсь как. Понятно, что нужно использовать обратное преобразование из цифр в букву, аля (char)(i + 'a'), но что-то до конца так и не получается это сделать. А так, конечно, буквы не нужны. За замечания спасибо - поправил. |
||||
|
|||||
| avlzll |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 30.11.2007 Репутация: нет Всего: нет |
Да, от букв надо отказаться - но корректно вывести так и не удается.
Этот кусок печатает цепочки целиком, без разбиения на слова. При добавлении ставится флаг об окончании слова, но как его правильно применить для вывода... |
|||
|
||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Этот кусочек работает неправильно, буквы, через которые проходит несколько путей должны выводится несколько раз, а здесь они выводятся лишь однократно. Нужно накапливать путь от корня до листа и там уже и печатать
|
||||||||
|
|||||||||
| avlzll |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 30.11.2007 Репутация: нет Всего: нет |
Большое спасибо, xvr, за помощь! Немного поправил и оно заработало так, как надо.
Для вызова сделал функцию внутри класса.
Пойду про string почитаю по-больше. |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |