Программа Javascript для поиска элемента в связанном списке
Напишите функцию, которая ищет заданный ключ «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 представляет длину данного связанного списка.
Пожалуйста, обратитесь к полной статье о поиске элемента в связанном списке (итеративном и рекурсивном) для получения более подробной информации!