Очередь как структура данных. Динамические структуры данных #5

Sdílet
Vložit
  • čas přidán 6. 09. 2024
  • Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
    Двусвязный список | Динамические структуры данных #2
    goo.gl/79zCUx
    ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
    Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут!=)
    🔴🔴🔴 www.donationale...
    или тут
    🔴🔴🔴 / simplecode
    ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
    Уроки по программированию
    Наша группа ВК smplcode
    Подписывайтесь на канал / @simplecodeit

Komentáře • 75

  • @SimpleCodeIT
    @SimpleCodeIT  Před 6 lety +37

    *Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*

    • @fallennephalem1258
      @fallennephalem1258 Před 6 lety +5

      #SimpleCode Здравствуйте Сергей, я сейчас обучаюсь C++ по вашим урокам, вы делаете их очень хорошо, а главное понятно. Я хотел у вас спросить, а будут ли уроки по C#?

    • @SimpleCodeIT
      @SimpleCodeIT  Před 6 lety +5

      Через 1-2 месяца начну создание углублённого курса по C#.

  • @Ogr285
    @Ogr285 Před 6 lety +37

    Лучшие уроки по динамическим структурам данным, которые я видел. Большое спасибо.

  • @shaa8193
    @shaa8193 Před 6 lety +115

    А если "Мне только спросить"?

  • @C2H5OHH
    @C2H5OHH Před 2 lety +8

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

  • @user-jg5zo9ho6w
    @user-jg5zo9ho6w Před 6 lety +35

    Ты лучший, все мои одноклассники, которые хотят стать программистами смотрят тебя.!КОроль

    • @4ykagekz975
      @4ykagekz975 Před 2 měsíci

      Это примерно все???😂😂😂

  • @user-dq5lz2he3c
    @user-dq5lz2he3c Před 6 lety +22

    Год каналу, с др короче)

  • @SimpleCodeIT
    @SimpleCodeIT  Před 6 lety +7

    #очередьдинамическаяструктура #SimpleCode #урокипрограммирования

  • @Ermine882
    @Ermine882 Před 6 lety +7

    Спасибо за урок.

  • @vladalu9794
    @vladalu9794 Před 6 lety +5

    спасибо большое за отличный урок!!

  • @andyanderson222
    @andyanderson222 Před 3 lety +1

    Очень полезная серия, большое Вам спасибо!

  • @user-se5vr4vw8c
    @user-se5vr4vw8c Před 5 lety +30

    Не совсем понятно, зачем использовать именно двусвязный список, так как можно взять за основу односвязный с одним "усовершенствованием" - будем хранить указатель и на головной элемент списка (начало очереди), и на последний (конец очереди). В таком случае, принцип извлечения элемента из начала очереди по реализации будет аналогичен извлечению элемента из начала списка, а добавления элемента в конец очереди - соответственно, добавлению элемента в конец списка, с той лишь разницей, что при этом "концевой" указатель будет переходить на этот самый добавленный элемент.
    Такой вариант будет и более быстрым, и менее затратным по памяти, нежели вариант с двусвязным списком

    • @aleksk9652
      @aleksk9652 Před 4 lety +2

      А теперь представь, в очереди есть 10 элементов. Извлекаем первый элемент из очереди. Как поставить указатель на первый элемент? мы начинаем с последнего элемента очереди (это хеад односвязного списка) и перебираем весь односвязный список, чтобы добавить указатель на первый элемент в очереди. С двусвязным списком не будет этого перебора.

    • @user-kc8re1qf4y
      @user-kc8re1qf4y Před 4 lety +8

      @@aleksk9652 "Как поставить указатель на первый элемент после извлечения первого?" , а в чем собственно проблема? Создаем указатель на объект типа узла присваиваем ей первый узел,а далее первому узлу присваиваем её же адрес (т.е адрес на след узел, тем самым присвоив указателю второй элемент, как первый), а потом при помощи указателя которой мы создали удаляем бывший первый элемент. В итоге у нас первым узлом стал второй, а первый удалили (можно также любую другую операцию сделать)

    • @user-vv9sw3ku8h
      @user-vv9sw3ku8h Před 4 lety +7

      Ты в курсе, что описал работу двусвязного списка?

    • @clashsmash9763
      @clashsmash9763 Před 4 lety +6

      @@user-vv9sw3ku8h
      В том и прикол, что работать это будет как в двусвязном списке, но таким образом мы экономим ресурсы, разве нет? Для реализации очереди ведь ненужен весь функционал двусвязного списка.

    • @user-qm4or3bt4v
      @user-qm4or3bt4v Před 3 lety +6

      Ну то есть односвязный список соазу с head и tail указателями, но без prev указателя в каждом узле, как было бы в двусвязном списке. В принципе логичная и даже более безопасная для очереди структура, но не имеющая собственного названия в иерархии динамических структур и потому, наверное, слишком нестандартная, чтобы реализовывать такой тюнинг в уроке для новичков

  • @GameChaneelImpossible
    @GameChaneelImpossible Před 4 lety +5

    Поздравляю с 100.000 подписчиков! Спасибо за ваши уроки!

  • @nikossik
    @nikossik Před 4 lety +2

    Спасибо большое!!!!

  • @user-od8mn6ns2z
    @user-od8mn6ns2z Před 2 lety +1

    Спасибо за урок !)

  • @andrey_sautenko
    @andrey_sautenko Před 6 měsíci

    кртуо,легко и быстро! спасибо!

  • @user-fp2sb2fb6v
    @user-fp2sb2fb6v Před 6 lety +1

    Молодец, понравился урок

  • @ex2888
    @ex2888 Před 4 lety +1

    5:19 двусвязный список
    upd: еее, правильно ответил

  • @fortnitebestmoments368
    @fortnitebestmoments368 Před 7 měsíci +1

    Односвязный не? Хранить ссылку на последний элемент и ему добавлять новый элементы.

  • @Blendershick
    @Blendershick Před 4 lety

    Спасибо!

  • @alexanderurezchenko6446
    @alexanderurezchenko6446 Před 4 lety +1

    Было бы здорово, если бы автор видео отвечал на вопросы зрителей в комментариях...

    • @user-no9zt9dh4o
      @user-no9zt9dh4o Před 2 lety +1

      ну так отвечают, но если 500 роликов и вопросы разнообразные, то не всегда сразу легко вникнуть в то что спрашивают, так и спрашивают иногда херню)

  • @myaccount7166
    @myaccount7166 Před 6 lety +3

    Спасибо за видео. Единственный вопрос, почему именно двусвязный список? Ведь односвязный тоже должен подойти, а работает чуть чуть быстрее (за счёт только одного поля с адресом).

    • @myaccount7166
      @myaccount7166 Před 6 lety +6

      Дошло. Односвязный список изначально не позволяет получить последний элемент в списке.

    • @user-dh5ky9yt3q
      @user-dh5ky9yt3q Před 5 lety +3

      @@myaccount7166 спасибо

    • @user-co5op7sz2z
      @user-co5op7sz2z Před 3 lety +4

      На базе односвязного списка очередь прекрасно будет работать, надеюсь за 2 года ты это понял.

    • @Kalin_cheetah
      @Kalin_cheetah Před rokem +1

      @@user-co5op7sz2z если последний элемент удаляем, нужно чтобы tail стал указывать на предпоследний элемент, а без prev pointer придется искать его с начала, поэтому не могу понять почему-то на базе односвязного (даже если модифицировать tail'ом) очередь прекрасно работает

    • @1Dpyr
      @1Dpyr Před rokem +1

      @@Kalin_cheetah просто подумайте о том что в односвязном списке можно организовать поле tail и head... и поменять их местами... в tail будем добавлять элемент, а из head будем забирать.

  • @user-hb7er4ff9u
    @user-hb7er4ff9u Před 2 lety

    спасибо

  • @zhenyacanada1443
    @zhenyacanada1443 Před 4 lety

    Спасибо

  • @kaynsolo
    @kaynsolo Před 6 lety +2

    Like!

  • @DoctorKrolic
    @DoctorKrolic Před 6 lety

    Двухсвязный список. Тут очевидно.

  • @crazyraccoon6995
    @crazyraccoon6995 Před 4 lety +2

    А не будет лучше для очередей использовать видоизменённый односвязный список? То есть это односвязный список, но с указателем на последний элемент. А внутри блока Node не будет лишних указателей на предыдущий элемент.

    • @bossmusa9075
      @bossmusa9075 Před 4 lety +1

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

    • @user-qm4or3bt4v
      @user-qm4or3bt4v Před 3 lety +4

      @@bossmusa9075 односвязный с tail указателем на последний элемент (тюнингованый односвязный) потратит столько же времени на добавление в конец, сколько и двусвязный (нет, даже меньше, обратных указателей не будет)

    • @flowlike6ixgod
      @flowlike6ixgod Před 3 lety +1

      @@user-qm4or3bt4v то есть лучше использовать "тюнингованный односвязный"?

  • @user-vs6kl8ph5v
    @user-vs6kl8ph5v Před rokem

    я тебя люблююююю 😭❤❤❤

  • @bumstern
    @bumstern Před 5 lety

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

  • @Anatolii_V_Novikov
    @Anatolii_V_Novikov Před 11 měsíci +1

    А можно ли реализовать очередь на слегка модифицированном односвязном списке? Модификация заключается в добавлении поля tail, и тогда добавление в очередь будет выгодно обернуть в push_back().

  • @xenonist4502
    @xenonist4502 Před 5 lety +2

    Почему мы не можем просматривать элементы в середине очереди? Мы же их не изменяем, а просто проходимся по цепочке ссылок, просто перебор, что в нём такого? Зачем урезать этот функционал, он же может пригодиться?

    • @test_bot5541
      @test_bot5541 Před 2 lety +3

      За 2 года вы уже, конечно, нашли ответ на этот вопрос, но... Потому что есть конкретные требования к структуре под названием очередь и этим требованиям соответствует интерфейс для работы с ней. Сегодня вы под капотом реализовали очередь, как цепочку ссылок, а завтра окажется, что конкретно для вашей задачи оптимальней использовать массив. И вот после изменения реализации очереди, скорее всего уже кем-то другим, весь стандартный функционал работает, как и ожидается по стандарту - добавление в конец, удаление сначала, пока в одном прекрасном месте программы не вызовется ваш пригодившийся, никем не ожидаемый, метод readNextListNode :-)

    • @bonusanima
      @bonusanima Před 2 lety

      @@test_bot5541 какие классные у Вас ответы, спасибо.

  • @izvarzone
    @izvarzone Před 2 lety +1

    FIFO - как в больничке. FILO - как в MTG.

  • @wldzam
    @wldzam Před 3 lety

    i m here. thanks

  • @vasiltsaruk500
    @vasiltsaruk500 Před 5 měsíci

    ??? Чому не використати однозв'язний список з фіксацією початкового (зчитування) і кінцевого (додавання) елементів/об'єктів? Це дійсно ідеальний варіант.

  • @ivanrozb
    @ivanrozb Před 3 lety

    5:19 Двусвязный список

  • @bitard3361
    @bitard3361 Před 6 lety +4

    Будут видео по java ?

  • @Kokurorokuko
    @Kokurorokuko Před 4 lety

    Объясните мне, пожалуйста: многие эти структуры данных только ограничивают возможности программиста. Есть ли смысл тогда их использовать? Ради экономии ресурсов компьютера?

    • @user-gb1ch8rf1e
      @user-gb1ch8rf1e Před 3 lety +3

      В первую очередь для удобства. Когда нужна очередь и ты используешь очередь, сразу интуитивно понятно, что именно оно делает, чем если ты используешь список

    • @lizenox
      @lizenox Před 2 lety +2

      Они не ограничивают возможности если выбирать с умом. Когда вы подбираете структуру данных под конкретную задачу и запросы, то это наоборот вам даст больше возможностей т.к будет расходоваться меньше ресурсов а запросы будут выполняться быстрее. Главное понимать что это просто инструменты, и все будет зависеть только от вас - разработчика)

  • @user-kl9bw5ei4s
    @user-kl9bw5ei4s Před 4 lety

    😃😃😃😃😃😃

  • @user-yj3mi9em7y
    @user-yj3mi9em7y Před 5 lety

    хороший бример это Queue

  • @medetkhanaltynbek1442
    @medetkhanaltynbek1442 Před 2 lety

    похоже на двусвязный список

  • @maksimanvar7361
    @maksimanvar7361 Před 4 lety

    +

  • @nightwolf4371
    @nightwolf4371 Před 4 lety

    😳😳😳

  • @habihabi2003
    @habihabi2003 Před 4 lety

    Что такое bootloader

  • @bogdanstrelkov6293
    @bogdanstrelkov6293 Před 4 lety

    Спасибо огромное, подскажите пожалуйста как удалять каждый второй элемент в очереде?

    • @test_bot5541
      @test_bot5541 Před 2 lety +3

      И вот вы летите на вертолёте, и видите, как внизу в один конец тоннеля въезжает поезд, вагон за вагоном, и так же через время вагон за вагоном выезжает из другого конце тоннеля. Как бы так удалить каждый второй вагон, пока поезд находится в тоннеле? Да просто не думать об этом.

  • @DD0S2
    @DD0S2 Před 3 lety

    спасибо

  • @djohangun4873
    @djohangun4873 Před 4 lety

    спасибо

  • @Ingwar_
    @Ingwar_ Před 5 lety

    спасибо