Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2010, 14:11   #1
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию Поиск последнего слова фразы в дереве предложения.

Взываю о помощи!!

Вообщем последовательный текст содержится в такой матрёшке, она вроде деревом называется.
################################
ОБЪЕКТ
(слово)
(ссылка на следующий ОБЪЕКТ)

Поисковый метод()

КОНЕЦ ОБЪЕКТА
#################################
То есть каждое слово содержит ссылку на последующее слово.


Задача:
есть массив из слов. Как разыскать в этом дереве элемент, соответствующий последнему слову разыскиваемого массива, причём так, чтобы все предыдущие элементы массива совпали с соответствующими элементами дерева?

К примеру вот поисковый шаблон ['like','neko']
вот дерево ['the','like',('neko'),'riveк','long est','like',('neko'),'neko',]
Найти должно то, что в скобочках.

P.S. вроде формулировка вопроса больше теоретическая, потому запостил сюда.
the_deer_one вне форума Ответить с цитированием
Старый 17.08.2010, 14:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что-то я ниразу не понял...
А вхождения как выглядят?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.08.2010, 14:35   #3
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Гы, сформулировал так, что аж вдуплил!
короче просто перебираются варианты.
(если элемент равен и он не последний вызвать поисковый метод)
(если равен и он последний в образце то его возвратить)
(если не равен образцу и не последний в дереве то вызвать следующий поисковый метод)
(если не равен образцу и следующий последний то возвратить nil )


Цитата:
А вхождения как выглядят?
Я их скобочками отметил.
the_deer_one вне форума Ответить с цитированием
Старый 17.08.2010, 14:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
the_deer_one
Извини конечно, но что-то я по прежнему не догоню...
Как ты дерево строишь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.08.2010, 14:43   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Тебе нужно найти слово после like ? Скан в цикле, не вижу никаких препятствий.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 17.08.2010, 14:48   #6
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Данные у тебя не в виде дерева представлены по описанию а в виде списка.
Короче тебе надо рекурсивным методом поиск делать
1. в функцию передается указатель на первый элемент списка и шаблон поиска
2. ищется первое вхождение шаблона
3. запоминаем указатель на первое вхождение
4. вызываем эту же функцию передаем указатель на текущий элемент и шаблон поиска
5. если функция находит что-то переходим ко 2-му шагу, иначе возвращаем текущее положение
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано предложение. Между словами предложения один пробел, а после последнего слова точка. Vadim123456 Помощь студентам 0 01.05.2010 23:28
Перестановка в строке первого и последнего слова.. mihail0608 Общие вопросы C/C++ 16 08.12.2009 16:25
написать с помощью рекурсии функцию поиска последнего слова в строке? - Си Cvetok Помощь студентам 1 13.05.2008 15:43
предложения, все слова в которых образованны повторением одного символа, и сформировать из них массив kluwa Общие вопросы C/C++ 4 08.12.2007 15:17