Вопросы с тегом '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
10 отв.

Почему именно нам нужна структура данных "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 отв.

LinkedList - Как освободить выделенную память, используя malloc

У меня очень простой код C для построения списка Singlely Link, как показано ниже, в котором я выделяю память для каждого node динамически, используя malloc. В конце кода я хочу освободить память для каждого выделенного node, задавался вопросом, как...
11 авг. '11 в 14:50