Вопросы с тегом 'linked-list'

Связанный список - это структура данных, в которой элементы содержат ссылки на следующий (и, возможно, предыдущий) элемент. Связанные списки предлагают O (1) вставить после и удаление любого элемента с известным местоположением памяти, конкатенацией O (1) и O (1) доступа спереди (и, возможно, назад), а также O (1) следующего элемента доступ. Случайный доступ и вставка/удаление случайных индексов имеют сложность O (n) и обычно не реализуются.
6
ответов

Относительная производительность std::vector против std:: list vs. std:: slist?

Для простого связанного списка, в котором случайный доступ к элементам списка не является обязательным требованием, существуют ли какие-либо существенные преимущества (производительность или иное) для использования std::list вместо std::vector? Если...
задан 26 окт. '08 в 16:24
7
ответов

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

В недавнем интервью Slashdot Линус Торвальдс привел пример того, как некоторые люди используют указатели таким образом, что они не понимают, как правильно их использовать. К сожалению, поскольку я один из людей, о которых он говорит, я также не смо...
задан 16 окт. '12 в 15:38
9
ответов

Поиск цикла в односвязном списке

Как я могу определить, имеет ли одиночный связанный список цикл или нет?  Если он имеет цикл, то как найти точку начала цикла, т.е. node, из которой был запущен цикл.
задан 23 апр. '12 в 9:05
11
ответов

Эффективный связанный список в С++?

Этот документ говорит, что std::list неэффективен: std:: list - крайне неэффективный класс, который редко бывает полезен. Он выполняет распределение кучи для каждого элемента, вставленного в него, поэтому имеет чрезвычайно высокий постоянный коэфф...
задан 16 авг. '17 в 18:44
5
ответов

Зачем увеличивать указатель на два при поиске цикла в связанном списке, почему не 3,4,5?

Я уже рассмотрел question, в котором говорится об алгоритме поиска цикла в связанном списке. Я прочитал решение алгоритма поиска циклов Floyd, упомянутое во многих местах, где мы должны взять два указателя. Один указатель (более медленный/черепаховый...
задан 27 февр. '11 в 1:50
23
ответов

Удаление среднего node из одного связанного списка, когда указатель на предыдущий node недоступен

Можно ли удалить средний node в единственном связанном списке, когда единственная доступная нам информация - это указатель на node, который будет удален, а не указатель на предыдущий node? После удаления Предыдущий node должен указывать на node рядо...
задан 16 сент. '08 в 6:41
32
ответов

Что такое практический пример реального мира связанного списка?

Я понимаю определение связанного списка, но как его можно представить и связать с общей концепцией или элементом? Например, композиция (EDIT: первоначально названная "наследование" ) в ООП может быть связана с автомобилями. Все (большинство) автомоб...
задан 13 марта '09 в 22:09
2
ответов

Какова временная сложность вызова size() в LinkedList в Java?

Как спрашивает название, мне интересно, использует ли метод size() в классе LinkedList амортизированное время O (1) или время O (n).
задан 14 мая '09 в 16:57
3
ответов

Как списки, реализованные в Haskell (GHC)?

Мне было просто интересно узнать некоторые детали реализации списков в Haskell (ответы на GHC - это хорошо) - это наивные связанные списки или у них есть какие-то специальные оптимизации? Более конкретно: Do length и (!!) (например) должны проходи...
задан 22 апр. '10 в 10:35
12
ответов

Что такое эффективный алгоритм, чтобы найти, является ли связанный список циклическим/циклическим или нет?

Как я могу найти, является ли связанный список циклическим или циклическим? Я попытался выполнить поиск, но не смог найти удовлетворительного решения. Если возможно, можете ли вы предоставить псевдокод или реализацию Java? Например: 1 → 3 → 5 → 71 ...
задан 09 июля '09 в 15:27
2
ответов

Почему для производительности массива важна локальность кеша?

В следующем блоге есть утверждение о преимуществах массивов по связанным спискам: Массивы имеют лучшую локальность кэша, что может существенно повлиять на производительность. Что это значит? Я не понимаю, как локальность кэша может обеспечить огр...
задан 22 авг. '12 в 5:55
6
ответов

Почему LinkedList в целом медленнее, чем список?

Я начал использовать некоторые LinkedLists вместо списков в некоторых из моих алгоритмов С#, надеясь ускорить их. Однако я заметил, что они просто чувствовали себя медленнее. Как любой хороший разработчик, я подумал, что я должен проявлять должную ос...
задан 12 мая '11 в 22:02
13
ответов

В чем причина использования двойного указателя при добавлении node в связанном списке?

В двух примерах кода, приведенных ниже, добавляется node вверху связанного списка. Но в то время как в первом примере кода используется двойной указатель, во втором примере кода используется один указатель пример кода 1: struct node* push(struct ...
задан 01 сент. '11 в 17:15
5
ответов

Когда список с двойной связью более эффективен, чем отдельный список?

В интервью сегодня мне задали вопрос. Помимо ответа на реверсирование списка и как на обратный, так и на задний ход, в нем было что-то "фундаментальное", которое продолжал подчеркивать интервьюер. Я сдался и, конечно, после интервью провел несколько...
задан 22 марта '13 в 8:00
5
ответов

как применить двоичный поиск O (log n) в отсортированном связанном списке?

Недавно я столкнулся с одним интересным вопросом в связанном списке. Отображается отсортированный отдельно связанный список, и мы должны искать один элемент из этого списка. Сложность времени не должна превышать O(log n). Похоже, нам нужно применит...
задан 12 марта '11 в 9:43