Тёмный

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

Елена Литвинова — Искусство Веб-разработки 🛸
Просмотров 12 тыс.
50% 1

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

 

27 сен 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 57   
@timurdaniel3543
@timurdaniel3543 Год назад
Не знаю как я нашел твой канал. Но почему раньше не узнал о твой кнал😢. У тебя Божественный талант. Объясните сложное простым языком. Огромное спасибо за урок.
@МишаЩетинин-з5ы
@МишаЩетинин-з5ы 2 года назад
Обьяснить сложное простым понятным языком это талант!!! Спасибо огромное за Ваши труды! Лучшие уроки в youtube!
@webelart
@webelart 2 года назад
Рада, что видео понравилось! Спасибо большое за такие тёплые слова! 😍 Крепко вас обнимаю! ❤️
@МишаЩетинин-з5ы
@МишаЩетинин-з5ы 2 года назад
продолжайте пожалуйста у Вас это очень хорошо получается желаю вам успехов и всего наилучшего!
@svetlanazheleykina4113
@svetlanazheleykina4113 Год назад
Спасибо Вам, Елена, большое!
@alexandrcoolakov1170
@alexandrcoolakov1170 2 года назад
Эх, помню, как Вицин в операции Ы нарушил правило LIFO ) Хорошие фильмы были, не то , что щас- одну шляпу снимает весь мир. По видосу- вспомнил обучение мое) Не знаю, он мне в рекомендациях выскочил, решил освежить память)
@ЭльнараГайнанова-ф3к
Ещё 1 любимый блогер! Спасибо за старания! ❤
@quite10
@quite10 3 года назад
Как всегда, на высоте😍 Спасибо Вам большое!❤️
@webelart
@webelart 3 года назад
❤️❤️❤️
@АлександрКуликов-в8м
Очень классный контент! Спасибо!
@annst968
@annst968 2 года назад
Огромнейшее спасибо вам за урок))) Бегу подписываться)
@deniskorablev2648
@deniskorablev2648 3 года назад
спасибо за видосики, очень полезно
@arsenmanasuev4934
@arsenmanasuev4934 3 года назад
материал хороший. и подача не плоха. год назад поставил бы два пальца но сейчас только один.
@АлександрКуликов-в8м
Эх, хорошо бы нечто подобное про графы увидеть )
@divizionby0
@divizionby0 2 года назад
Супер! Спасибо!
@zenkowu2622
@zenkowu2622 Год назад
Спасибо большое за урок, нравится ваша подача! Но я не поняла, почему задачу flatten мы решаем с помощью СТЕКА, а не очереди? ведь мы забираем элементы из НАЧАЛА, что соответствует структуре данных ОЧЕРЕДЬ, ведь первый пришел - первый ушел, буду очень благодарна за объяснение
@sviatoZavr
@sviatoZavr 3 года назад
Жду от вас курсы )
@HauntMeGaming
@HauntMeGaming 7 месяцев назад
Спасибо за объяснение, но применение стека в ваших примерах как мне видится сильно замедляет код)) Массив хранится в памяти спина к спине и соответственно первый елемент очень важен для памяти. Удаляя первый елемент мы перееопределяем весь массив, то есть каждая итерация O(n). Получается супер медленно - поправьте если я не прав)
@webelart
@webelart 7 месяцев назад
Спасибо за комментарий, да удаление первого элемента насколько знаю хуже по памяти, чем последнего.
@mcltdtm420
@mcltdtm420 День назад
по flatten() действия с удалением и добавлением значений в начало массива очень долгие. первое, что пришло в голову, перебор for'ом и на каждый найденый массив отправлять его в рекурсию. не будет лишних манипуляций з входним массивом, только чтение входного массива и запись в результирующий массив.
@adilb8652
@adilb8652 2 года назад
Круто
@jamjam3337
@jamjam3337 Год назад
👏
@suslikest3708
@suslikest3708 2 года назад
А если мне например в дереве надо посчитать все цены товаров(узлов), то можно также через стек сделать, но с помощью копии массива const stack = [...arr](чтобы не изменять основной)? Или есть лучше варианты?
@webelart
@webelart 2 года назад
Смотря как у вас дерево задано. Вообще мутировать данные обычно не очень хорошо и если возможно создать дубликат, то это круто. Но опять же вы создадите только верхний уровень дубликата. Т.к. все массивы, объекты по ссылке передаются и если у вас внутри есть доп. под массивы, то их по факту тоже нужно копировать. Вообще можете посмотреть моё видео с деревьями, я там показывала несколько примеров обхода двоичного дерева. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-loLjdVaaDKs.html. Вдруг будет полезно для ваших задач. ❤️
@luckytima2315
@luckytima2315 2 года назад
Подскажите пожалуйста, я вроде 5kyu а вот на этой задаче застрял, как практиковатся чтоб решать такие?
@webelart
@webelart 2 года назад
Вообще правило таково, пробуете как получается и как знаете решить задачу, важно чтобы самостоятельно. А потом смотрите решение и ищете лучшее, разбираете. В итоге у вас в голове появится новый кирпичик возможного решения. Про стеки у меня понимание появилось после того как деревья изучила. Там был обход дерева в примере и я просто поняла как можно такие задачи решать. У меня есть ещё видео про деревья, там кажется были обходы ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-loLjdVaaDKs.html
@luckytima2315
@luckytima2315 2 года назад
@@webelart
@yevhenpolishchuk4327
@yevhenpolishchuk4327 2 года назад
Спасибо за видео! Но я как-то запутался. Например в вики очередь описана иначе. Главное отличие в том что новый елемент добавляется в конец очереди, а не в начало. Тоже самое в learn.javascript с ссылкой на вики. І соответственно для очереди они предлагают методы push и shift. В чем подвох?
@webelart
@webelart 2 года назад
Здравствуйте! Рада, что контент понравился. Давайте разберёмся, что смутило? Если обращаться к определениям, то очередь - первый пришёл, первый ушёл. Стек - первый пришёл, последний ушёл. А там уже используются методы, которые удобнее. По факту можно для очереди 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 года назад
и на кодварс зашел, даже прошел входное испытание
@VladosDDoS
@VladosDDoS Год назад
Отличное видео, спасибо. Возможно в задаче на нотацию в условии if(!isNaN(numberedEl) для большей читабельности можно написать просто if(numberedEl) тк он не пропустит falsy - NaN значение.
@1MrGerman
@1MrGerman 2 года назад
Крутая!) Очень много взял для себя из видео!
@Nikoulkina
@Nikoulkina Год назад
Отличное видео!
@PS-tn6mc
@PS-tn6mc 3 года назад
жалко что вы начали не для самых маленьких с основы основ с элементарных понятий... приходится пропукать
@webelart
@webelart 3 года назад
У меня есть видео для начинающий по html, по js пока нет. Экспериментирую с разными форматами. Возможно будут курсы для начинающих в том числе по JS, поэтому следите 😘
@asmal832-hi
@asmal832-hi Год назад
Во flatten не лучше с начала pop, push, а потом уже в result unshift? Сложность совсем другая будет.😊
@webelart
@webelart Год назад
Pop push лучше использовать. По памяти должно быть продуктивнее.
@zergzerg4844
@zergzerg4844 7 месяцев назад
Я может что-то не понял но это точно структура данных или речь о том как отсортировать или получить результат используя методику струтуры данных стека или очередь. Так как в Бинарном деревы вы там точно создавали структуру через класс с методами обхода. А здесь тупо функция с результатом.
@webelart
@webelart 7 месяцев назад
В качестве стека и очереди в JS можно использовать обычный массив.
@zergzerg4844
@zergzerg4844 7 месяцев назад
@@webelart Не это я вонимаю, но я думал сама идей этих струтктур это ограничений функций типа поиска или извлечение данных из любого места. Например в стеке там должны работать методы push, pop peek,
@PS-tn6mc
@PS-tn6mc 3 года назад
Извините. пропуСкать
@-Forever-Young-
@-Forever-Young- Год назад
странно, что так мало лайков
@Артем-ш6ц2й
@Артем-ш6ц2й Год назад
Класс! Спасибо за видео)
@ДениИмагожев-й7у
@ДениИмагожев-й7у 2 года назад
Круто👍🏻
@ЮляИванова-у3щ
@ЮляИванова-у3щ 3 года назад
Только начала смотреть и уже поставила лайк♥️
@webelart
@webelart 3 года назад
Спасибо! 😍🤗❤️
@lvivduncan
@lvivduncan 3 года назад
спасибо! Елена, а видео про стек вызовов будете делать?)
@webelart
@webelart 3 года назад
Про рекурсию? 🙂
@lvivduncan
@lvivduncan 3 года назад
@@webelart рекурсия тоже весьма интересна) но имел ввиду ситуацию, когда происходит переполнение, например, при использовании нескольких setTimeout() или нескольких event, когда одно событие накладывается на другое
@webelart
@webelart 3 года назад
@@lvivduncan Если я правильно поняла, то вы говорите про event loop. Очень крутая тема! Пока даже не думала про эту тему, спасибо за наводку! Но пока не знаю будет ли в ближайшем будущем про это или нет. Кажется вот в этом видео здорово объясняют ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-8aGhZQkoFbQ.html. Если с англ тяжело, там есть русские субтитры и вроде даже не машинные.
@lvivduncan
@lvivduncan 3 года назад
@@webelart большое спасибо!)
Далее
ТАРАКАН
00:38
Просмотров 209 тыс.
Java. Очередь и стек.
22:03
Просмотров 22 тыс.
Что такое Render и Commit в React
9:53
Просмотров 3,8 тыс.
Очереди в JavaScript
18:43
Просмотров 2,6 тыс.