Тёмный

Linked List на Python (Связный Cписок на Python) 2021 

Роман Рахлин
Подписаться 256
Просмотров 13 тыс.
50% 1

Опубликовано:

 

30 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 54   
@ЮрийКлименко-к3щ
@ЮрийКлименко-к3щ 2 года назад
зачем нужно было писать геттеры и сеттеры, если атрибуты публичные?
@eluterracock
@eluterracock Год назад
Чел, спасибо тебе, начало было немного странное, потому что когда видишь лицо автора поначалу не понимаешь какой контент будет, а тут прям доходчиво и очень понятно что и куда, короче очень годно! Респект!
@АнтонПетров-ь8б
@АнтонПетров-ь8б 10 месяцев назад
Особенно хреново это, когда сидишь в наушниках. Прибавляешь звук, чтобы услышать автора видео, так как в начале слишком тихо, а потом просто после переключения экрана глохнешь от звука
@РоманРахлин
@РоманРахлин 3 года назад
Прошу огромное прошение за чёрный экран начиная с 02:42 минуты! Вот картинка которая должна была там быть 👉 m.imgur.com/a/6B8StHR
@ЮрийМицкевич-э8э
@ЮрийМицкевич-э8э 2 года назад
Благодарю за отличную лекцию. Твой материал по linkedList дал абсолютное его понимание. Все пересмотренное и прочитанное ранее такой ясности не дало. Успехов тебе. Ты большой молодец.
@linked_list_DLL
@linked_list_DLL 3 месяца назад
Автор, ты немного недопонял, как работают связные списки. Смотри: у тебя операции добавления ноды в конец выполняются за линейное время, что довольно долго. Это происходит потому что ты используешь 1 указатель, который итерируется по всем нодам. Это немного неправильно. В связных списках должно быть 2 указателя (1 - начальный указатель, который может итерироваться до n-1 позиции. 2 указатель - всегда остаётся на последней ноде).
@daniillantsov2161
@daniillantsov2161 Год назад
Большое тебе спасибо, очень доступно и понятно объяснил данную тематику, плюсом хочу поблагодарить за демонстрацию такого типа создания односвязаного списка, у тебя получилось гораздо понятней чем у других.
@artyomklg915
@artyomklg915 7 месяцев назад
1) Связный список одна из самых бесполезных структур данных. Даже дядька который его придумал (не помню его имени) написал, что за 25 лет ни разу его не использовал в работе, как и 99.9999% разработчиков. 2) геттеры и сеттеры в питоне это позорище, как минимум лучше просто обращать к полям, а как максимум использовать @property. Но если эти методы просто присваивают значение, то их использование это только лишние строки кода 3) == None?????ахахаха Серьёзно? Тут обязан быть оператор is или is not там, где != Зашел посмотреть чисто, что тут можно объяснять 50 минут, даже на лекции в универе этой бесполезной теме посвещают максимум 20, просто чтобы люди знали что такое есть.
@ЮрийКлименко-к3щ
@ЮрийКлименко-к3щ 2 года назад
для длины было было логичнее переопределить магический метод __len__
@ЮрийКлименко-к3щ
@ЮрийКлименко-к3щ 2 года назад
@@AntonyKondr тогда лучше на С)
@narkotr4fic843
@narkotr4fic843 Год назад
Кто-нибудь объясните, почему использовав переменную в функции add_element, но не использовав ее в функции show, результат все равно оказался корректным? def add_element(self,value): if not self.head: self.head = Node(value) return cur = self.head while cur.follow is not None: cur = cur.follow cur.follow = Node(value) def show(self): collector = '' while self.head: collector += f'[{self.head.value}]-->' self.head = self.head.follow collector += 'None' print(collector) При этом, если в функции add_element все делать не через переменную cur, а напрямую использовать self.head и тд, то отображаться в результате будут только последние 2 элемента в связном списке?
@denfortdenfort3844
@denfortdenfort3844 7 месяцев назад
Конечно я новичок и понимаю, что пригодиться может всё. Но в итоге самые эффективные методы это когда мы по индексу добавляем или удаляем элемент в списке. Они хоть и самые большие, но в целом если прописать только 2 метода и работать с элементами в списке только по индексам это же будет удобнее и в плане кода выйдет меньше, чем запоминать и прописывать сразу все методы.
@duha_prostoy3953
@duha_prostoy3953 7 месяцев назад
ку, спасибо за видос. А это на пучарме можно сделать? Если да, подскажи как классы написать
@EtaSensey1
@EtaSensey1 2 года назад
Вообще не мог понять эту тему. Но после просмотра этого обьясненя прям прозрел. Спасибо автору!!!
@Anshegar
@Anshegar Год назад
Отличный гайд, спасибо, дополнил собственный код парой очень удобных идей твоих.
@aboronilov
@aboronilov 2 года назад
Знаешь дружище я пересмотрел столько туториалов по связанному списку, но понял только твой. ты большой молодец. Спасибо
@mrfang5908
@mrfang5908 Год назад
Тупил с этим линкедлистом, не мог найти видоса, твой помог, стал лучше понимать как это работает, осталось с реверсом до конца вникнуть и все, спасибо
@СергейНауменко-ь6н
@user-jd3hb4vd2z может запишешь еще нам видосик про double LL и другие структуры данных которые ты уже умеешь реализовывать?
@Bloodyrabbit97
@Bloodyrabbit97 10 месяцев назад
Спасибо, нихера не понятно
@diman445
@diman445 2 года назад
Лучший!
@oskar_wild_7459
@oskar_wild_7459 Год назад
Шикаррно! Лучшее объяснение
@fedanov8251
@fedanov8251 Год назад
я 200 попищек где мой приз
@_mrmark
@_mrmark Год назад
Роман, огромное тебе спасибо. Ты спас мою нервную систему . Наконец-то до меня дошло, как это работает.👍
@ildarEGE
@ildarEGE 3 года назад
Рома опять делает топчик
@Kirayia
@Kirayia 3 года назад
Солидарен.
@kateqper
@kateqper 3 года назад
Спасибо за видео. Не мог бы ты ещё подсказать, как из получившегося списка сделать массив?
@РоманРахлин
@РоманРахлин 3 года назад
Ну скорее всего чтобы сделать массив, нужно итерировать до последнего элемента связного списка включительно и собирать все элементы в массив. Это очень похоже на метод вывода, где мы проходились и собирали все в строку
@kokinsergei
@kokinsergei Год назад
Самое классное объяснение связанных списков. Спасибо
@pavelolifer9934
@pavelolifer9934 Год назад
@Роман Рахлин, спасибо за видео, для меня материал очень полезен, но в функции remove() ошибка - если в списке находится только 1 элемент и сделать удаление my_list.remove(0) - этот элемент в нем и останется. надо блок if, где проверка индекса на 0, вынести из цикла while и сделать проверку до цикла, иначе с одним эелементом цикл while никогда не выполнится, потому что next вернет None.
@volkovev
@volkovev 2 года назад
Спасибо, друг! Очень полезно было :)
@jamjam3337
@jamjam3337 Год назад
👏
@arturartur4747
@arturartur4747 2 года назад
Очень хорошее и понятное объяснение!! красава
@m_video_prydyba
@m_video_prydyba 2 года назад
Thank you
@anastasiagordievich4967
@anastasiagordievich4967 2 года назад
супер объяснение, спасибо!
@deniskorobkin8574
@deniskorobkin8574 Год назад
Крутой материал, спасибо!
@kotovasya87
@kotovasya87 Год назад
Спасибо за примеры. Помогло вникнуть глубже.
@elenatalley7899
@elenatalley7899 2 года назад
Лучшее объяснение на youtube!!!! спасибо! подписка
@usernoname-wv6of
@usernoname-wv6of Год назад
Если апенд реализовывать, как в видео, получается перебор всего списка для добавления в конец. В таком случае сложность алгоритма линейная О(n), зависит от количества элементов списка. Для pushback и pushfront должна быть константная О(1). А вот инсерты не в пограничные позиции можно сделать только с перебором. Можно добавить помимо head еще и tail. Для первого элемента условие if head is none и if tail is none : head = current, tail = current. Для последующих элементов (если head != none): tail.next = current (делаем связь последнего элемента с новым), tail = current (переставляем указатель хвост на новый (последний) элемент). Если список двухсвязанный, то еще добавляется связь current.previous = tail до перестановки указателя хвоста на новый элемент
@МаріяСметанюк-ю1р
@МаріяСметанюк-ю1р 2 года назад
Почему сравнение с array? Разве list не чаще используется в Python?
@cristianglodeanu2329
@cristianglodeanu2329 Год назад
а разве нельзя просто добавлять дату нодов в новый лист и делать ретурн листа с [::-1]
@DuhaxD
@DuhaxD 2 года назад
Приветствую! Хорошее видео, однако хотелось бы посмотреть на то как отсортировать связный список.
@itladymk
@itladymk Год назад
Спасибо большое, все очень понятно объясняешь 🤍
@nr_cyber
@nr_cyber 2 года назад
help me
@farhodismailov6357
@farhodismailov6357 Год назад
Супер, благодарю
@СергейНауменко-ь6н
Молодец спасибо!
@kamfechannel8477
@kamfechannel8477 2 года назад
Спасибо большое
@sergeyshestakov607
@sergeyshestakov607 Год назад
Спасибо! помогло
@varossimonyan
@varossimonyan 2 года назад
Спасибо за видос, бро!)
@rlxinc.6016
@rlxinc.6016 2 года назад
Спасибо 🤜🤛
@anytrofi
@anytrofi 2 года назад
👍
@МаралМаксутова-к5б
большоооооооооооооооооооооое спасибо!продолжай в том же духе!
@РоманРахлин
@РоманРахлин 2 года назад
❤️‍🔥❤️‍🔥❤️‍🔥
@igortheoverlord4960
@igortheoverlord4960 2 года назад
Спасибо, классное видео, надеюсь будет еще!)
@Sergey-cz7ym
@Sergey-cz7ym 2 года назад
Очень понятное объяснение Linked List. Если не ошибаюсь то LinkedList можно было бы развернуть в цикле длиной LinkedList.length каждый раз переставлять второй элемент в начало списка и после этого удалять второй элемент, используя уже написанные функции push_front и remove Например так (у меня методы класса названы чуть по другому): def reverse_me_2(self): i = 0 while i < len(self) - 1: self.insert_first(self.value_at(i + 1)) self.remove_node_at(i + 2) i += 1
Далее
Linked List. Data Structures | Implementation in JS
35:49
Se las dejo ahí.
00:10
Просмотров 6 млн
Learn Linked Lists in 13 minutes 🔗
13:24
Просмотров 305 тыс.
Python Data Structures #2: Linked List
18:54
Просмотров 431 тыс.
Se las dejo ahí.
00:10
Просмотров 6 млн