0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 13
|
||||||
1 | ||||||
Вставка элемента в дерево05.12.2010, 02:49. Показов 9078. Ответов 15
Метки нет (Все метки)
Доброго времени суток.Такая проблема,есть задача:
Написать программу,реализующую вставку в Trie дерево.С помощью этой программы создайте Trie дерево и удалите из него слова заканчивающиеся на согласную букву. Алгоритм решения я впринципе понимаю.А вот с реализацией возникают трудности..
0
|
05.12.2010, 02:49 | |
Ответы с готовыми решениями:
15
Не работает вставка элемента в дерево Вставка элемента в заданную позицию, удаление элемента по заданной позиции, поиск заданного элемента Вставка листа в дерево B-Дерево. Поиск. Вставка. Удаление. |
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
||||||
05.12.2010, 06:57 | 2 | |||||
Насчет удаления тех, что заканчиваются на согласную: для каждого потомка - сморим на последнюю букву поля str, если на согласная - всех детей этого потомка добавляем к детям его предка, а его самого из списка детей предка удаляем. лень писать, сам сделаешь правда? И болранд си++ это ересь , лучше другой возьми, например среда code::blocks замечательная. P. S. push - это как бы добавление по ключу, добавляет узлу со указанной строкой потомка с указанной строкой.
1
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 13
|
|
05.12.2010, 14:48 [ТС] | 3 |
Щас если разберусь досконально во всем что ты мне написал,то думаю смогу)
Спасибо большое) Еще если не сложно можешь подробно рассписать буквально что делается в каждой строке?Буду очень признателен..
0
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|||||||||||
05.12.2010, 19:24 | 4 | ||||||||||
эх... а ты прогу откомпилировал? ладно я сам ща все есделаю )
боже мой, сколько у меня опечаток... ужас
вывод программы: Код
first: second: sixth. seventh. third: fifth. forth.
0
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 13
|
|
06.12.2010, 00:39 [ТС] | 5 |
В Builder 6 выдает такие ошибки:
C++ Error] Unit1.cpp(26): E2451 Undefined symbol 'not' [C++ Error] Unit1.cpp(26): E2377 If statement missing ) [C++ Warning] Unit1.cpp(44): W8070 Function should return a value [C++ Error] Unit1.cpp(53): E2451 Undefined symbol 'not' [C++ Error] Unit1.cpp(53): E2377 If statement missing ) [C++ Error] Unit1.cpp(69): E2451 Undefined symbol 'not' [C++ Error] Unit1.cpp(69): E2377 If statement missing ) После замены not на &&,проблемы остались: [C++ Error] Unit1.cpp(26): E2188 Expression syntax [C++ Error] Unit1.cpp(38): E2377 If statement missing ) [C++ Warning] Unit1.cpp(44): W8070 Function should return a value [C++ Error] Unit1.cpp(53): E2188 Expression syntax [C++ Error] Unit1.cpp(62): E2377 If statement missing ) [C++ Error] Unit1.cpp(69): E2188 Expression syntax [C++ Error] Unit1.cpp(75): E2377 If statement missing ) Кто специализируется по билдерам,подскажите.. Заранее благодарен.
0
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|
06.12.2010, 00:46 | 6 |
строки обозначенные здесь не согласуются с приведенным выше кодом. лучше выложи что у тебя получилось.
0
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 13
|
||||||
06.12.2010, 00:52 [ТС] | 7 | |||||
&& - Это логическое AND если я не ошибаюсь,а там должно быть логическое отрицание?
0
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|
06.12.2010, 00:59 | 8 |
блин, да я балда не то насоветовал! конечно отрицание! каюсь, каюсь! восклицательный знак надо ставить.
0
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 13
|
|
06.12.2010, 01:39 [ТС] | 9 |
После замены на восклицательный знак,в самом коде ошибок он не обнаружил.
Но выдал следующее: [Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl [Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl Добавлено через 22 минуты Как я понимаю он не может найти нужные ему библиотеки,котрые следует подключить к проекту и указать к ним путь...Но разве так должно быть,если мне требуется написать проект в Console Wizard?.. Добавлено через 6 минут Все разобрался,при создании проекта нужно было отключить Use VCL.
0
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|
06.12.2010, 01:45 | 10 |
дай ка угадаю навскидку, но может связать функции инициализации визуальных объектов, типа окна и все такое, м... наверно тип проекта не тот выбран. Там должно быть что-нибудь вроде "консольное приложение".
П. С. упс, опоздал.
0
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 13
|
|
06.12.2010, 02:35 [ТС] | 11 |
Я правильно понимаю что мы сами выбираем в какой корень мы заталкиваем?
0
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|
06.12.2010, 03:03 | 12 |
в данном случае - да. Только ты наверное имел ввиду не в "корень", а в" узел". Корень-то всегда один, это локальная переменная tree через которую осуществляется доступ ко всему дереву, потому и "корень".
Выбираем какой узел станет родительским для нового узла по средствам ключа. Можно и по другому сделать, чтобы новый узел вставлялся случайным образом, или в лексикографичском порядке.
0
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 13
|
|
06.12.2010, 03:12 [ТС] | 13 |
Да я имел в виду узел,а по какому принципу можно сделать чтобы само определялось куда нужно создать лист?Например Вводятся 2 слова Пол и Полковник,чтобы получалось в 1 узле Пол,а в его лист дописывалось ковник?Или чтобы осуществлялось таким образом:
0
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
||||||
06.12.2010, 03:38 | 14 | |||||
std::string можно сравнивать операторами >, <, ==, !=.
дерево должно быть бинарным. вовремя вставки необходимо сравнивать данные (str) узла и вставляемую строку (newvalue) оператором <, и если вставляемое больше то вставлять в левое поддерево, меньше - в правое. для этого надо будет переопределить node
0
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 13
|
||||||
06.12.2010, 04:34 [ТС] | 15 | |||||
Вот тут node(const std::string& s):str(s),left(NULL),rigth(NULL) {}
Выдал: [C++ Error] Unit1.cpp(15): E2312 'rigth' is not an unambiguous base class of 'node' Добавлено через 26 минут И если я правильно понимаю,то функция вывода этого дерева будет как вывод обычного бинарного?
0
|
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 13
|
||||||
17.12.2010, 03:35 [ТС] | 16 | |||||
Вот полностью рабочий код,удовлетворяющий решению задачи,может кому пригодится...
0
|
17.12.2010, 03:35 | |
17.12.2010, 03:35 | |
Помогаю со студенческими работами здесь
16
Поиск элемента в бинарном дереве, вставка элемента Вставка узла в дерево Windows Explorer Двоичное дерево (операции вставка, удаление, поиск) Вставка элемента Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |