Найти строку с помощью двунаправленного поиска в связанном списке

У меня есть функция Find, которая последовательно ищет связанный список строк. Эта функция Find находит строку и возвращает ее. У меня также есть функция удаления, которая использует эту функцию Find и удаляет строку из связанного списка. Обе мои функции работают. Тем не менее, я пытаюсь проверить другой способ поиска в связанном списке, и мне интересно, если это возможно сделать двунаправленный поиск в связанном списке.
Вот мой код:

найти

StringList::StringListNode *StringList::find(const string &s) //basic search function
{
StringListNode *sp = pTop;   // Search
while (sp != 0 && sp->data != s)
sp = sp->pNext;
return sp;}

Вот функция удаления:

 void StringList::remove(string s)
{

StringListNode *curr = this->find(s);
if (curr->pPrev != 0)
{
curr->pPrev->pNext = curr->pNext;

}

if (curr->pNext != 0)
{
curr->pNext->pPrev = curr->pPrev;

}
if (pTop == curr)
{
pTop = curr->pNext;

}
if (pBottom == curr)
{
pBottom = curr->pPrev;
}

Обе мои функции работают отлично. Мне просто интересно, может ли кто-нибудь показать мне пример того, как искать связанный список, но вместо последовательного поиска, я хотел бы посмотреть, как двунаправленный поиск будет работать в учебных целях. Какие-либо предложения? Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector