Программа Javascript для поиска элемента в связанном списке

Опубликовано: 2 Сентября, 2022

Напишите функцию, которая ищет заданный ключ «x» в заданном односвязном списке. Функция должна возвращать true, если x присутствует в связанном списке, и false в противном случае.

bool search(Node *head, int x) 

Например, если искомый ключ равен 15, а связанный список — это 14->21->11->30->10, то функция должна возвращать false. Если искомый ключ равен 14, то функция должна вернуть true.
Итеративное решение:

1) Initialize a node pointer, current = head.
2) Do following while current is not NULL
    a) current->key is equal to the key being searched return true.
    b) current = current->next
3) Return false 

Ниже приведена итеративная реализация вышеуказанного алгоритма для поиска заданного ключа.

Выход:

Yes

Временная сложность: O(n), где n представляет длину данного связанного списка.
Вспомогательное пространство: O(1), дополнительное пространство не требуется, поэтому это константа.

Рекурсивное решение:

bool search(head, x)
1) If head is NULL, return false.
2) If head"s key is same as x, return true;
3) Else return search(head->next, x) 

Ниже приведена рекурсивная реализация вышеуказанного алгоритма для поиска заданного ключа.

Выход:

Yes

Временная сложность: O(n), где n представляет длину данного связанного списка.
Вспомогательное пространство: O (n) для рекурсивного стека, где n представляет длину данного связанного списка.

Пожалуйста, обратитесь к полной статье о поиске элемента в связанном списке (итеративном и рекурсивном) для получения более подробной информации!