В теории сказал что вставка в конец - O(1). Поправка - это если в реализации хранить ссылку на последнюю ноду. В коде на видео я этого не сделал, поэтому там вставка в конец - линейная.
Привет! А для односвязного линкед листа удаление с конца разве О(1)? Мы же должны убрать указатель с предпоследнего элемента, а на него прямой ссылки у нас нет, так что придется пробегаться по всем элементам в поисках предпоследнего элемента?
Привет Игорь! Прикольно умеешь излагать свои мысли, слушать приятно, хоть в принципе тема и знакомая, но с интересом послушал! Продолжай в том же духе! Если будет больше видео о данных, то будет здорово :) Кому интерсны такого рода темы, то советую почитать - Грокаем алгоритмы, на русском тоже можно найти.
Я ещё добавлю, что строка Node(0) - краеугольный камень. И картинка, где показан список на 7 минуте не до конца честный, т.к. первый элемент head не совсем обычный, как остальные. Все элементы можно вставлять только после него, но он всегда присутствует первым элементом. Без него всё ломается. И реализация его как бы скрывает (если сделать __repr__ для осмотра всех элементов, то это видно). Мозг сломал пока нашёл отличия со своей реализацией, а оно было тут. И это про дизайн, а не алгоритмы, но я бы его сделал Elipsis (для отличия от других объектов) и если в конструктор Node добавить next_, то можно с 36 3 строки схлопнуть в 'prev.next = Node(val, prev.next)'.
В теории сказал что вставка в конец - O(1). Поправка - это если в реализации хранить ссылку на последнюю ноду. В коде на видео я этого не сделал, поэтому там вставка в конец - линейная.
Привет! А для односвязного линкед листа удаление с конца разве О(1)? Мы же должны убрать указатель с предпоследнего элемента, а на него прямой ссылки у нас нет, так что придется пробегаться по всем элементам в поисках предпоследнего элемента?
@@oabdullava Да, это верно. У меня ошибка. Спасибо что написали.
Спасибо, очень понравилось, всё чётко и по делу.
Классное объяснение, ничего лишнего. Спасибо, Игорь
🔥
Привет Игорь! Прикольно умеешь излагать свои мысли, слушать приятно, хоть в принципе тема и знакомая, но с интересом послушал! Продолжай в том же духе! Если будет больше видео о данных, то будет здорово :) Кому интерсны такого рода темы, то советую почитать - Грокаем алгоритмы, на русском тоже можно найти.
Спасибо за комментарий и рекомендацию. Да книга хорошая, тоже бы советовал.
Я не программист, но мне было крайне интересно смотреть твое видео! Подача огонь!
Спасибо большое
Я ещё добавлю, что строка Node(0) - краеугольный камень.
И картинка, где показан список на 7 минуте не до конца честный, т.к. первый элемент head не совсем обычный, как остальные. Все элементы можно вставлять только после него, но он всегда присутствует первым элементом. Без него всё ломается. И реализация его как бы скрывает (если сделать __repr__ для осмотра всех элементов, то это видно). Мозг сломал пока нашёл отличия со своей реализацией, а оно было тут.
И это про дизайн, а не алгоритмы, но я бы его сделал Elipsis (для отличия от других объектов) и если в конструктор Node добавить next_, то можно с 36 3 строки схлопнуть в 'prev.next = Node(val, prev.next)'.
Привет. Классный видос, сори что не в тему но ты не знаешь что там с Владом? Он говорил что перерыв возьмёт от медиа, а щас вообще пропал
Влад всё
@@mykytaradko5776 надеюсь что нет. Классный чел был
@@javaSucks с ним все нормально. сказал "это мило", что вы спрашиваете за него : )