2016-04-28 3 views
0

В программе, над которой я работаю для окончательного проекта, мне нужно реализовать функции поиска для упорядоченных и неупорядоченных связанных списков. В задании ясно сказано, что есть ожидание функции поиска для каждого типа.Поиск упорядоченных и неупорядоченных связанных списков

Я работал со связанными списками в предыдущих классах, я понимаю разницу между упорядоченными и неупорядоченными, но я ударил стену, пытаясь понять, в чем разница в их поиске. На мой взгляд, оба должны перебирать список до тех пор, пока значение ключа не будет найдено, а затем вернет его. Как они должны отличаться?

+10

В отсортированном списке вы можете остановить поиск раньше, как только значение, которое будет найдено, меньше/больше, чем значение текущего узла. Поскольку порядок сортировки говорит о том, что найденное значение не может присутствовать за пределами этой точки. – kaylum

+2

также для отсортированного списка вы можете использовать некоторый алгоритм, например, двоичный поиск. https://en.wikipedia.org/wiki/Binary_search_algorithm, хотя для связанного списка вам может потребоваться реализовать дополнительные структуры, такие как указатели пропуска. – paradite

ответ

0

В случае упорядоченного списка временная сложность может быть уменьшена во время выполнения операции поиска. Для этой цели вы можете реализовать skip list. Но если ваш связанный список должен быть строго привязанным списком, то нет никаких различий, кроме упоминания @kaylum в его комментарии

Смежные вопросы