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

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

Как определить, имеет ли связанный список цикл, используя только два расположения памяти

Кто-нибудь знает об алгоритме, чтобы найти, если привязанный список петли сам по себе, используя только две переменные для перемещения по списку. Скажем, у вас есть связанный список объектов, неважно, какой тип объекта. У меня есть указатель на загол...
задан 30 янв. '09 в 10:51
7
ответов

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

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

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

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

Почему именно нам нужна структура данных "Circular Linked List" (по отдельности или вдвое)?

Почему именно нам нужна структура данных "Circular Linked List" (по отдельности или вдвое)? Какую проблему он решает, что видно с помощью простых списков ссылок (по отдельности или дважды)?
задан 28 авг. '10 в 9:48
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