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

  Рет қаралды 11,934

Елена Литвинова — Искусство Веб-разработки 🛸

Елена Литвинова — Искусство Веб-разработки 🛸

Күн бұрын

Пікірлер: 57
@timurdaniel3543
@timurdaniel3543 Жыл бұрын
Не знаю как я нашел твой канал. Но почему раньше не узнал о твой кнал😢. У тебя Божественный талант. Объясните сложное простым языком. Огромное спасибо за урок.
@Nikoulkina
@Nikoulkina Жыл бұрын
Отличное видео!
@svetlanazheleykina4113
@svetlanazheleykina4113 Жыл бұрын
Спасибо Вам, Елена, большое!
@МишаЩетинин-з5ы
@МишаЩетинин-з5ы 2 жыл бұрын
Обьяснить сложное простым понятным языком это талант!!! Спасибо огромное за Ваши труды! Лучшие уроки в youtube!
@webelart
@webelart 2 жыл бұрын
Рада, что видео понравилось! Спасибо большое за такие тёплые слова! 😍 Крепко вас обнимаю! ❤️
@МишаЩетинин-з5ы
@МишаЩетинин-з5ы 2 жыл бұрын
продолжайте пожалуйста у Вас это очень хорошо получается желаю вам успехов и всего наилучшего!
@VladosDDoS
@VladosDDoS Жыл бұрын
Отличное видео, спасибо. Возможно в задаче на нотацию в условии if(!isNaN(numberedEl) для большей читабельности можно написать просто if(numberedEl) тк он не пропустит falsy - NaN значение.
@ЭльнараГайнанова-ф3к
@ЭльнараГайнанова-ф3к Жыл бұрын
Ещё 1 любимый блогер! Спасибо за старания! ❤
@alexandrcoolakov1170
@alexandrcoolakov1170 2 жыл бұрын
Эх, помню, как Вицин в операции Ы нарушил правило LIFO ) Хорошие фильмы были, не то , что щас- одну шляпу снимает весь мир. По видосу- вспомнил обучение мое) Не знаю, он мне в рекомендациях выскочил, решил освежить память)
@Артем-ш6ц2й
@Артем-ш6ц2й Жыл бұрын
Класс! Спасибо за видео)
@1MrGerman
@1MrGerman 2 жыл бұрын
Крутая!) Очень много взял для себя из видео!
@АлександрКуликов-в8м
@АлександрКуликов-в8м 3 жыл бұрын
Очень классный контент! Спасибо!
@divizionby0
@divizionby0 2 жыл бұрын
Супер! Спасибо!
@quite10
@quite10 3 жыл бұрын
Как всегда, на высоте😍 Спасибо Вам большое!❤️
@webelart
@webelart 3 жыл бұрын
❤️❤️❤️
@ЮляИванова-у3щ
@ЮляИванова-у3щ 3 жыл бұрын
Только начала смотреть и уже поставила лайк♥️
@webelart
@webelart 3 жыл бұрын
Спасибо! 😍🤗❤️
@deniskorablev2648
@deniskorablev2648 3 жыл бұрын
спасибо за видосики, очень полезно
@annst968
@annst968 2 жыл бұрын
Огромнейшее спасибо вам за урок))) Бегу подписываться)
@arsenmanasuev4934
@arsenmanasuev4934 3 жыл бұрын
материал хороший. и подача не плоха. год назад поставил бы два пальца но сейчас только один.
@ДениИмагожев11
@ДениИмагожев11 2 жыл бұрын
Круто👍🏻
@adilb8652
@adilb8652 2 жыл бұрын
Круто
@АлександрКуликов-в8м
@АлександрКуликов-в8м 3 жыл бұрын
Эх, хорошо бы нечто подобное про графы увидеть )
@zenkowu2622
@zenkowu2622 Жыл бұрын
Спасибо большое за урок, нравится ваша подача! Но я не поняла, почему задачу flatten мы решаем с помощью СТЕКА, а не очереди? ведь мы забираем элементы из НАЧАЛА, что соответствует структуре данных ОЧЕРЕДЬ, ведь первый пришел - первый ушел, буду очень благодарна за объяснение
@sviatoZavr
@sviatoZavr 3 жыл бұрын
Жду от вас курсы )
@HauntMeGaming
@HauntMeGaming 9 ай бұрын
Спасибо за объяснение, но применение стека в ваших примерах как мне видится сильно замедляет код)) Массив хранится в памяти спина к спине и соответственно первый елемент очень важен для памяти. Удаляя первый елемент мы перееопределяем весь массив, то есть каждая итерация O(n). Получается супер медленно - поправьте если я не прав)
@webelart
@webelart 9 ай бұрын
Спасибо за комментарий, да удаление первого элемента насколько знаю хуже по памяти, чем последнего.
@mcltdtm420
@mcltdtm420 2 ай бұрын
по flatten() действия с удалением и добавлением значений в начало массива очень долгие. первое, что пришло в голову, перебор for'ом и на каждый найденый массив отправлять его в рекурсию. не будет лишних манипуляций з входним массивом, только чтение входного массива и запись в результирующий массив.
@jamjam3337
@jamjam3337 Жыл бұрын
👏
@asmal832-hi
@asmal832-hi Жыл бұрын
Во flatten не лучше с начала pop, push, а потом уже в result unshift? Сложность совсем другая будет.😊
@webelart
@webelart Жыл бұрын
Pop push лучше использовать. По памяти должно быть продуктивнее.
@suslikest3708
@suslikest3708 3 жыл бұрын
А если мне например в дереве надо посчитать все цены товаров(узлов), то можно также через стек сделать, но с помощью копии массива const stack = [...arr](чтобы не изменять основной)? Или есть лучше варианты?
@webelart
@webelart 3 жыл бұрын
Смотря как у вас дерево задано. Вообще мутировать данные обычно не очень хорошо и если возможно создать дубликат, то это круто. Но опять же вы создадите только верхний уровень дубликата. Т.к. все массивы, объекты по ссылке передаются и если у вас внутри есть доп. под массивы, то их по факту тоже нужно копировать. Вообще можете посмотреть моё видео с деревьями, я там показывала несколько примеров обхода двоичного дерева. kzbin.info/www/bejne/oqCvm5eMlsZ3gdU. Вдруг будет полезно для ваших задач. ❤️
@zergzerg4844
@zergzerg4844 10 ай бұрын
Я может что-то не понял но это точно структура данных или речь о том как отсортировать или получить результат используя методику струтуры данных стека или очередь. Так как в Бинарном деревы вы там точно создавали структуру через класс с методами обхода. А здесь тупо функция с результатом.
@webelart
@webelart 10 ай бұрын
В качестве стека и очереди в JS можно использовать обычный массив.
@zergzerg4844
@zergzerg4844 10 ай бұрын
@@webelart Не это я вонимаю, но я думал сама идей этих струтктур это ограничений функций типа поиска или извлечение данных из любого места. Например в стеке там должны работать методы push, pop peek,
@luckytima2315
@luckytima2315 2 жыл бұрын
Подскажите пожалуйста, я вроде 5kyu а вот на этой задаче застрял, как практиковатся чтоб решать такие?
@webelart
@webelart 2 жыл бұрын
Вообще правило таково, пробуете как получается и как знаете решить задачу, важно чтобы самостоятельно. А потом смотрите решение и ищете лучшее, разбираете. В итоге у вас в голове появится новый кирпичик возможного решения. Про стеки у меня понимание появилось после того как деревья изучила. Там был обход дерева в примере и я просто поняла как можно такие задачи решать. У меня есть ещё видео про деревья, там кажется были обходы kzbin.info/www/bejne/oqCvm5eMlsZ3gdU
@luckytima2315
@luckytima2315 2 жыл бұрын
@@webelart
@-Forever-Young-
@-Forever-Young- Жыл бұрын
странно, что так мало лайков
@lvivduncan
@lvivduncan 3 жыл бұрын
спасибо! Елена, а видео про стек вызовов будете делать?)
@webelart
@webelart 3 жыл бұрын
Про рекурсию? 🙂
@lvivduncan
@lvivduncan 3 жыл бұрын
@@webelart рекурсия тоже весьма интересна) но имел ввиду ситуацию, когда происходит переполнение, например, при использовании нескольких setTimeout() или нескольких event, когда одно событие накладывается на другое
@webelart
@webelart 3 жыл бұрын
@@lvivduncan Если я правильно поняла, то вы говорите про event loop. Очень крутая тема! Пока даже не думала про эту тему, спасибо за наводку! Но пока не знаю будет ли в ближайшем будущем про это или нет. Кажется вот в этом видео здорово объясняют kzbin.info/www/bejne/bpKqmY2HoNR5mLM. Если с англ тяжело, там есть русские субтитры и вроде даже не машинные.
@lvivduncan
@lvivduncan 3 жыл бұрын
@@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 жыл бұрын
и на кодварс зашел, даже прошел входное испытание
@PS-tn6mc
@PS-tn6mc 3 жыл бұрын
жалко что вы начали не для самых маленьких с основы основ с элементарных понятий... приходится пропукать
@webelart
@webelart 3 жыл бұрын
У меня есть видео для начинающий по html, по js пока нет. Экспериментирую с разными форматами. Возможно будут курсы для начинающих в том числе по JS, поэтому следите 😘
@PS-tn6mc
@PS-tn6mc 3 жыл бұрын
Извините. пропуСкать
Разберём каррирование в JavaScript на РУСИ-МУСИ-ПУСИ!
23:11
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 13 М.
Алгоритм бинарного поиска на JavaScript
18:00
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 8 М.
Lazy days…
00:24
Anwar Jibawi
Рет қаралды 8 МЛН
Accompanying my daughter to practice dance is so annoying #funny #cute#comedy
00:17
Funny daughter's daily life
Рет қаралды 25 МЛН
Smart Sigma Kid #funny #sigma
00:33
CRAZY GREAPA
Рет қаралды 31 МЛН
Кто круче, как думаешь?
00:44
МЯТНАЯ ФАНТА
Рет қаралды 6 МЛН
Java. Очередь и стек.
22:03
Sergey Arkhipov Java Tutorials
Рет қаралды 22 М.
Немного о worker’аx​ | Технострим
27:39
20 методов массивов в JavaScript, которые вы должны знать.
50:55
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 23 М.
Как работает Event Loop в JavaScript + примеры
33:24
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 33 М.
How to calculate the complexity of an algorithm by BIG O | The clearest explanation!
25:44
Front-end Science із Сергієм Пузанковим
Рет қаралды 128 М.
Учимся писать глубокий merge и сравнение объектов и массивов | Уроки JS
51:35
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 8 М.
Учимся использовать useMemo, useCallback и React.memo | подводные камни | JavaScript, React
37:25
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 26 М.
Очереди в JavaScript
18:43
Ayub Begimkulov
Рет қаралды 2,6 М.
Пишем и подробно разбираем алгоритм Quick Sort на JavaScript | Быстрая сортировка
32:24
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 10 М.
Lazy days…
00:24
Anwar Jibawi
Рет қаралды 8 МЛН