Учимся использовать стек и очередь в JavaScript

Поделиться
HTML-код
  • Опубликовано: 18 окт 2024

Комментарии • 57

  • @timurdaniel3543
    @timurdaniel3543 Год назад +1

    Не знаю как я нашел твой канал. Но почему раньше не узнал о твой кнал😢. У тебя Божественный талант. Объясните сложное простым языком. Огромное спасибо за урок.

  • @Nikoulkina
    @Nikoulkina Год назад +1

    Отличное видео!

  • @ЭльнараГайнанова-ф3к

    Ещё 1 любимый блогер! Спасибо за старания! ❤

  • @svetlanazheleykina4113
    @svetlanazheleykina4113 Год назад +1

    Спасибо Вам, Елена, большое!

  • @alexandrcoolakov1170
    @alexandrcoolakov1170 2 года назад +1

    Эх, помню, как Вицин в операции Ы нарушил правило LIFO ) Хорошие фильмы были, не то , что щас- одну шляпу снимает весь мир. По видосу- вспомнил обучение мое) Не знаю, он мне в рекомендациях выскочил, решил освежить память)

  • @МишаЩетинин-з5ы
    @МишаЩетинин-з5ы 2 года назад

    Обьяснить сложное простым понятным языком это талант!!! Спасибо огромное за Ваши труды! Лучшие уроки в youtube!

    • @webelart
      @webelart  2 года назад +1

      Рада, что видео понравилось! Спасибо большое за такие тёплые слова! 😍 Крепко вас обнимаю! ❤️

    • @МишаЩетинин-з5ы
      @МишаЩетинин-з5ы 2 года назад

      продолжайте пожалуйста у Вас это очень хорошо получается желаю вам успехов и всего наилучшего!

  • @1MrGerman
    @1MrGerman 2 года назад +1

    Крутая!) Очень много взял для себя из видео!

  • @annst968
    @annst968 2 года назад

    Огромнейшее спасибо вам за урок))) Бегу подписываться)

  • @VladosDDoS
    @VladosDDoS Год назад +2

    Отличное видео, спасибо.
    Возможно в задаче на нотацию в условии if(!isNaN(numberedEl) для большей читабельности можно написать просто if(numberedEl) тк он не пропустит falsy - NaN значение.

  • @Артем-ш6ц2й
    @Артем-ш6ц2й Год назад

    Класс! Спасибо за видео)

  • @quite10
    @quite10 3 года назад +2

    Как всегда, на высоте😍
    Спасибо Вам большое!❤️

    • @webelart
      @webelart  3 года назад

      ❤️❤️❤️

  • @ЮляИванова-у3щ
    @ЮляИванова-у3щ 3 года назад

    Только начала смотреть и уже поставила лайк♥️

    • @webelart
      @webelart  3 года назад

      Спасибо! 😍🤗❤️

  • @АлександрКуликов-в8м
    @АлександрКуликов-в8м 3 года назад +1

    Очень классный контент! Спасибо!

  • @arsenmanasuev4934
    @arsenmanasuev4934 3 года назад

    материал хороший. и подача не плоха. год назад поставил бы два пальца но сейчас только один.

  • @АлександрКуликов-в8м

    Эх, хорошо бы нечто подобное про графы увидеть )

  • @deniskorablev2648
    @deniskorablev2648 3 года назад +2

    спасибо за видосики, очень полезно

  • @divizionby0
    @divizionby0 2 года назад

    Супер! Спасибо!

  • @ДениИмагожев-й7у
    @ДениИмагожев-й7у 2 года назад

    Круто👍🏻

  • @adilb8652
    @adilb8652 2 года назад

    Круто

  • @zenkowu2622
    @zenkowu2622 Год назад +2

    Спасибо большое за урок, нравится ваша подача! Но я не поняла, почему задачу flatten мы решаем с помощью СТЕКА, а не очереди? ведь мы забираем элементы из НАЧАЛА, что соответствует структуре данных ОЧЕРЕДЬ, ведь первый пришел - первый ушел, буду очень благодарна за объяснение

  • @sviatoZavr
    @sviatoZavr 3 года назад

    Жду от вас курсы )

  • @jamjam3337
    @jamjam3337 Год назад

    👏

  • @HauntMeGaming
    @HauntMeGaming 8 месяцев назад

    Спасибо за объяснение, но применение стека в ваших примерах как мне видится сильно замедляет код)) Массив хранится в памяти спина к спине и соответственно первый елемент очень важен для памяти. Удаляя первый елемент мы перееопределяем весь массив, то есть каждая итерация O(n). Получается супер медленно - поправьте если я не прав)

    • @webelart
      @webelart  8 месяцев назад

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

  • @asmal832-hi
    @asmal832-hi Год назад

    Во flatten не лучше с начала pop, push, а потом уже в result unshift? Сложность совсем другая будет.😊

    • @webelart
      @webelart  Год назад

      Pop push лучше использовать. По памяти должно быть продуктивнее.

  • @lvivduncan
    @lvivduncan 3 года назад

    спасибо! Елена, а видео про стек вызовов будете делать?)

    • @webelart
      @webelart  3 года назад +1

      Про рекурсию? 🙂

    • @lvivduncan
      @lvivduncan 3 года назад

      @@webelart рекурсия тоже весьма интересна) но имел ввиду ситуацию, когда происходит переполнение, например, при использовании нескольких setTimeout() или нескольких event, когда одно событие накладывается на другое

    • @webelart
      @webelart  3 года назад +1

      @@lvivduncan Если я правильно поняла, то вы говорите про event loop. Очень крутая тема! Пока даже не думала про эту тему, спасибо за наводку! Но пока не знаю будет ли в ближайшем будущем про это или нет. Кажется вот в этом видео здорово объясняют ruclips.net/video/8aGhZQkoFbQ/видео.html. Если с англ тяжело, там есть русские субтитры и вроде даже не машинные.

    • @lvivduncan
      @lvivduncan 3 года назад

      @@webelart большое спасибо!)

  • @zergzerg4844
    @zergzerg4844 8 месяцев назад

    Я может что-то не понял но это точно структура данных или речь о том как отсортировать или получить результат используя методику струтуры данных стека или очередь. Так как в Бинарном деревы вы там точно создавали структуру через класс с методами обхода. А здесь тупо функция с результатом.

    • @webelart
      @webelart  8 месяцев назад

      В качестве стека и очереди в JS можно использовать обычный массив.

    • @zergzerg4844
      @zergzerg4844 8 месяцев назад

      @@webelart Не это я вонимаю, но я думал сама идей этих струтктур это ограничений функций типа поиска или извлечение данных из любого места. Например в стеке там должны работать методы push, pop peek,

  • @suslikest3708
    @suslikest3708 2 года назад

    А если мне например в дереве надо посчитать все цены товаров(узлов), то можно также через стек сделать, но с помощью копии массива const stack = [...arr](чтобы не изменять основной)? Или есть лучше варианты?

    • @webelart
      @webelart  2 года назад +1

      Смотря как у вас дерево задано. Вообще мутировать данные обычно не очень хорошо и если возможно создать дубликат, то это круто. Но опять же вы создадите только верхний уровень дубликата. Т.к. все массивы, объекты по ссылке передаются и если у вас внутри есть доп. под массивы, то их по факту тоже нужно копировать.
      Вообще можете посмотреть моё видео с деревьями, я там показывала несколько примеров обхода двоичного дерева. ruclips.net/video/loLjdVaaDKs/видео.html. Вдруг будет полезно для ваших задач. ❤️

  • @-Forever-Young-
    @-Forever-Young- Год назад

    странно, что так мало лайков

  • @mcltdtm420
    @mcltdtm420 22 дня назад

    по flatten() действия с удалением и добавлением значений в начало массива очень долгие. первое, что пришло в голову, перебор for'ом и на каждый найденый массив отправлять его в рекурсию. не будет лишних манипуляций з входним массивом, только чтение входного массива и запись в результирующий массив.

  • @luckytima2315
    @luckytima2315 2 года назад

    Подскажите пожалуйста, я вроде 5kyu а вот на этой задаче застрял, как практиковатся чтоб решать такие?

    • @webelart
      @webelart  2 года назад +2

      Вообще правило таково, пробуете как получается и как знаете решить задачу, важно чтобы самостоятельно. А потом смотрите решение и ищете лучшее, разбираете. В итоге у вас в голове появится новый кирпичик возможного решения.
      Про стеки у меня понимание появилось после того как деревья изучила. Там был обход дерева в примере и я просто поняла как можно такие задачи решать. У меня есть ещё видео про деревья, там кажется были обходы ruclips.net/video/loLjdVaaDKs/видео.html

    • @luckytima2315
      @luckytima2315 2 года назад

      @@webelart

  • @yevhenpolishchuk4327
    @yevhenpolishchuk4327 2 года назад

    Спасибо за видео! Но я как-то запутался. Например в вики очередь описана иначе. Главное отличие в том что новый елемент добавляется в конец очереди, а не в начало. Тоже самое в learn.javascript с ссылкой на вики. І соответственно для очереди они предлагают методы push и shift. В чем подвох?

    • @webelart
      @webelart  2 года назад +1

      Здравствуйте! Рада, что контент понравился. Давайте разберёмся, что смутило? Если обращаться к определениям, то очередь - первый пришёл, первый ушёл. Стек - первый пришёл, последний ушёл. А там уже используются методы, которые удобнее. По факту можно для очереди unshift и pop применить, но это будет дороже, чем push и shift.

    • @yevhenpolishchuk4327
      @yevhenpolishchuk4327 2 года назад

      @@webelart Интересно:) Что применять можно разные методы я понял. Просто почему на картинке в вики очередь выглядит не так? В чем подвох?ru.wikipedia.org/wiki/%D0%9E%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)

    • @yevhenpolishchuk4327
      @yevhenpolishchuk4327 2 года назад

      @@webelart Написано что елемент добавляется в конец очереди. Вот текст если ссылка не сработала: О́чередь - абстрактный тип данных с дисциплиной доступа к элементам «первый пришёл - первый вышел» (FIFO, англ. first in, first out). Добавление элемента (принято обозначать словом enqueue - поставить в очередь) возможно лишь в конец очереди, выборка - только из начала очереди (что принято называть словом dequeue - убрать из очереди), при этом выбранный элемент из очереди удаляется.

    • @webelart
      @webelart  2 года назад

      @@yevhenpolishchuk4327 Определение и картинка ок. Уточните, какая минута видео вызвала конфликт и что именно не сходится с представленным вами определением?

    • @yevhenpolishchuk4327
      @yevhenpolishchuk4327 2 года назад

      @@webelart Я просто питаюсь разобраться для себя что и как работает. У вас в видео все ок. Просто посмотрев ваше объяснение на примерах у меня сложилось впечатление что добавление элементов в очередь происходит в начало очереди. Хотя конкретно об этом вы не говорили. Потом я начал рыть дальше и тогда возник мой вопрос. Было бы понятней если бы вы этот момент уточнили, но это мое субъективное мнение тем более что я только учусь поэтому не судите строго и еще раз спасибо за видео.

  • @MrDmi3i
    @MrDmi3i 2 года назад

    я начинающий... )) маленькие открытия совершаю )) оказывается while(stack.length) - это пока "стек существует" ... О_о у меня окрываются глаза ))

    • @MrDmi3i
      @MrDmi3i 2 года назад

      и на кодварс зашел, даже прошел входное испытание

  • @PS-tn6mc
    @PS-tn6mc 3 года назад +1

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

    • @webelart
      @webelart  3 года назад +1

      У меня есть видео для начинающий по html, по js пока нет. Экспериментирую с разными форматами. Возможно будут курсы для начинающих в том числе по JS, поэтому следите 😘

  • @PS-tn6mc
    @PS-tn6mc 3 года назад

    Извините. пропуСкать