Связаные списки и Алгоритмы их изменения

preview_player
Показать описание
Понимание связаных списков — это один из первых шагов к пониманию коллекций данных. Связаные списки используются там, где массивы замедляют, а не ускаряют, работодействие программ.
Рекомендации по теме
Комментарии
Автор

то чувство, когда Иисус учит тебя программированию...

aaroldaaroldson
Автор

Дядя Володя! Как всегда, от души, спасибо за самые главные слова: " Ни кто в реальном проекте не будет реализовывать связанный список!"!!!

LokgoD
Автор

Посмотрел 3 урока по связанным спискам, этот самый понятный и доступный. Спасибо.

nokiadu
Автор

Бесподобно и понятно! не хватает примера кода)

sdwvit
Автор

sposibo valodya
pojaluysto sdelai roliki pro programmirovanie na, C.

louezpk
Автор

Хорошая теория, захотелось покодить и послушать Nightwish

vnikolayev
Автор

Слова ничего не значат! Покажите нам код!.. А так спасибо, конечно) Но операции создания списка, добавления и удаления элементов хотелось бы увидеть в коде.

BJl
Автор

чё, церковь уже программирование преподаёт?:)

AndreyDeveloper
Автор

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

sergeylastin
Автор

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

nvyzbtg
Автор

А я вот делал свой односвязанный список в реальном проекте. Закольцованный. Т.к. стандартного закольцованного нет.

jezrclq
Автор

все это очень красиво смотрится, но как поведет себя такая структура в многопоточной среде, ехх

matveysafronov
Автор

я пытался 2 раза написать список и оба раза у меня не получилось
это сделать до конца.

идея с рекрусивными структурами и указателями отпала сразу
вопервых память под эту структуру данных не получится выделить статически
во вторых под каждый элемент надо будет вызывать свой malloc


я делал так

брал массив каждое число в котором указывает на индекс следующего

 0 1 2 3 4 5   // 0 индекс на индекс головы списка
|3 4 5 1 2 0|   // 0 хвост списка

и второй массив, массив данных

 1 2 3 4 5
|д д д д д|

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

но я столкнулся с проблемой как реализовать последовательный доступ
как перебирать элементы списка(возможно по индексу) и при этом
нормально работать с этим списком удалять/добовлять элементы
в произвольное место

например

#define my_list(x) data[ list_get_index(my_list, x) ]

while(foreach(&my_list, &i)){
    my_list(i + 5) = 25
}

возможно надо внутри функции foreach перевернуть массив в индексы

 1 2 3 4 5
|3 1 4 2 5|

но вобщем это всё сложно я запутался и... )

vslmzee
Автор

0 дизлайков... Впечатляет) Спасибо большое! Хороший урок)

AzizjanAyupov_leo
Автор

Это односвязный список, есть и двусвязные

evgedoo
Автор

*ля... я очканул когда он сказал доброго времени суток xD

qluyoqb