*Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*
@maksimshekhunov40796 жыл бұрын
Наверное уже поздно задавать вопросы по этой теме, но всё же: Ты говорил, что нельзя работать с данными внутри очереди, однако тут ты демонстрируешь, как просто берёшь и исключаешь данные из середины очереди, вставляешь туда новые данные. Я не понял этого момента, можешь объяснить?
@konstantinsavenkov3536 жыл бұрын
Макс Шехунов возможно имелось ввиду, что сами данные (узлы) лучше не менять, а очередь модифицировать можно. Кстати, почему всё-таки узлы нельзя менять для меня вопрос. Например, если список хранит информацию о процессе и какой-то процесс завершает работу в отведенное ему время, но задачу он не решил, то информация о процессе сохраняется в узел. Вот и происходит модификация, ведь мы старые данные о процессе перезаписываем новыми. А потом этот процесс опять отправляется на выполнение, но теперь он полностью завершает работу и просит ОС завершить данный процесс. И одно из действий по завершению процесса будет удаление его из данной очереди выполняющихся процессов. Вот и модификация самой очереди. Может быть он оговорился, что нельзя модифицировать очередь?
Пробел после шарпа убери, а то хештег не засчитает, миллиарды зрителей и не узнают о тебе))
@veter46996 жыл бұрын
СПАСИБО ЗА ТРУД!!! ♥♥♥
@vladimirpirogov13362 жыл бұрын
Сергей, спасибо Вам за Ваши уроки, досматриваю плейлист "на одном дыхании"! Но позволю себе немного отрицательной обратной связи. В предыдущем видео Вы рассказали, что очередь строится на основе двусвязного списка потому что используются достоинства последнего и "не выстреливают" недостатки. А в этом, внезапно, говорите про упорядочивание элементов в очереди, т.е. двусвязном списке. После просмотра не сформировалось целостной картины. Предполагаю, что решается несколькими очередями (на иллюстрации одна). С уважением!
@KurpatovInstagram6 жыл бұрын
Спасибо!
@Ermine8826 жыл бұрын
Спасибо за урок.
@slimbdeful6 жыл бұрын
Понятно и наглядно - как обычно. Спасибо за урок, Сергей. Очень хотелось бы послушать и посмотреть о dll. Что как и откуда.
@moonrider86976 жыл бұрын
Спасибо за урок
@SimpleCodeIT6 жыл бұрын
Пожалуйста!
@overdoses17946 жыл бұрын
Спасибо за старания!
@АлександрКиселев-е2г4 жыл бұрын
Большое спасибо )
@NikolayForostiy5 жыл бұрын
Вообще интересно какая реализация очереди с приоритетом наиболее трудоспособная. Я думаю о N-нарном дереве с кольцевой очередью, для каждого приоритета.
@ПавелБойко-ь2д3 жыл бұрын
Сама логика понятна , но только не понятно зачем я это узнал 0.0 Спасибо за урок)
@Diadema5662 жыл бұрын
А зачем ты это смотрел?🤔
@stensej68414 жыл бұрын
Спасибо Сергей !
@HugoBossKosta2 жыл бұрын
спасибо за интересные доп уроки)
@ИринаИрина-ш5ы7р Жыл бұрын
Всё понятно!
@Diadema5662 жыл бұрын
Шикарные уроки! Жаль, что мало( мне си не нужно, а вот такие общин вещи очень интересны
@TheDavBag Жыл бұрын
при выпуске элементов на приоритетном исключении надо бы иметь счетчик вхождения по приоритетам, ведь мы ищем по приоритету M но не знаем сколько еще элементов в N их множестве если счетчика нет, то придется доходить до конца очереди постоянно
@АртемПольщак3 жыл бұрын
Видео зачет, очень помогло)
@MD-999_111 күн бұрын
Пример для новичка получился немного запутанным с приоритетами потому что ранее говорилось что доступ в очереди есть только к началу и к концу, а в иллюстрации в самой структуре очереди вы вытаскиваете элементы очереди в середине для исключения)) немного запутался
@whoami-iamred5 жыл бұрын
Очередь с приоритетом с предварительной сортировкой, конечно же, лучше, т.к. быстрее. При этом начинать поиск последнего элемента с наивысшим приоритетом лучше начиная с начала.
@Kokurorokuko2 жыл бұрын
Почему быстрее? Просто в разных местах проверка происходит.
@temuriyali2526 жыл бұрын
Krasavchik
@konstantinsavenkov3536 жыл бұрын
Спасибо за видео, не слышал про такую структуру данных (кольцевая очередь с приоритетом). Однако разве не проще иметь N обычных очередей, где N - количество приоритетов. У очереди с приоритетом есть один минус, как мне кажется. Если в очереди есть только элементы с минимальным приоритетом, то нужно сначала пройтись от начала и до конца списка, пытаясь найти элементы с приоритетом 1. Затем опять пройтись сначала, пытаясь найти элементы 2 и только потом обработан мы самый первый элемент списка, так как кроме 3-его приоритета нет ничего. Можно конечно во время прохода пересчитать количество элементов с разными приоритетами. И если нет элементов с 2-ым, то сразу выполнять 3-ий. Однако мне кажется, что это сильно усложняет алгоритм обработки элементов данной структуры. 3 очереди, где в каждой элементы своего приоритета выглядят намного проще.
@АндрейКузнецов-ц9д6 жыл бұрын
Но почему бы вам не завести счетчики элементов для каждого приоритета и исходя из их текущих значений принимать решение о поиске
@konstantinsavenkov3536 жыл бұрын
Андрей Кузнецов эту информацию нужно ведь где-то хранить. Допустим, что мы будем хранить эту информацию в структуре. Исходя из того, что очередь вся состоит из одного типа Node, где переменная-указатель хранит адрес другого такого Node, то хранить эту информацию в самой структуре не имеет смысла, так как будет дублирование информации. Получается, что нужна какая-то дополнительная структура PriorityQueue которая будет иметь поля дополнительной информации и собственно сам список. В принципе данные будут собраны в одном месте и логика тоже. Возможно это дело вкуса. В каких-то задачах лучше все данные хранить в одном таком списке, а в каких-то в разных.
@АндрейКузнецов-ц9д6 жыл бұрын
Ну если проводить аналогию с реализацией односвязного списка, мы хранили количество элементов Size в самом классе List, Node у нас был приватным классом в классе List, соответственно (проводя аналогию с односвязным списком) мы заводим дополнительно 3 поля класса List priority1, priority2 и priority3 и там храним количество элементов каждого приоритета ну и при поиске смотрим в эти поля и определяемся где нам надо искать (если допустим priority1 = 0, priority2 = 0 то можно сразу начинать с 3 приоритета не тратя время на остальное)
@АндрейКузнецов-ц9д6 жыл бұрын
Сергей подскажите пожалуйста, получается в кольцевой очереди у нас всегда строго определенное количество элементов? или мы все же можем вставлять туда элементы? если да, то куда? ну и соответственно наверное удалять их не имеет смысла.
@mykhailomorhal21816 жыл бұрын
Спасибо
@Vlad_Ofitserov Жыл бұрын
Дякую!
@forgwent5 жыл бұрын
так в предыдущем уроке говорилось,что очередь предполагает доступ к первому и последнему элементу только,как можно выбрать элемент из середины?
@stepanbazrov63304 жыл бұрын
Это абстракция для программиста видимо. Так как внутри двусвязный список, то можно
@skarty76725 ай бұрын
при просмотре сразу возникает вопрос к реализацие, почему не сделать 3(количество уровней приоретета) очереди в одном классе, и работать с ними как с обычными, сортируя перед добавлением, и добавляя в нужную очередь, и доставать по логике если пустой то проверять следующий уровень на пустоту и доставать, если пустой то идти дальше по сути это вектор/просто массив(смотря от задачи, но скорее всего количество уровней приоретета или не будет или очень редко будет меняться) из очередей только ограниченный для пользователя, мне кажется это может быть проще в реализауии, и более эффективно в работе?
@aleksandaralavantic1816 жыл бұрын
Не является ли бинарная куча лучшим подходом, чем эти которые вы упомянули?
@ПавелКостюченко-з1ц6 жыл бұрын
Привет, ты говорил что проще изучать программирование делая какой-то проект, можешь ли ты привести примеры таких проектов и посоветовать сборники задач для изучения программирования.
@konstantinsavenkov3536 жыл бұрын
Павел Костюченко собственно проект может абсолютно каким угодно. Хоть тетрис, хоть домашний менеджер файлов, напоминалка, архиватор, программа по выкачиванию фильмов, да хоть ОС какая-нибудь. Проект может быть каким угодно, главное чтобы он был интересен разработчику.
@askhat16545 жыл бұрын
Добрый день. Не могли бы подсказать? Реализация данной структуры данных на примере библиотеки из C# or Java?
@andykharikhanov73256 жыл бұрын
А как правильно удалять visual studio и его надо скачивать только на диск С?
@alexshyshkov39196 жыл бұрын
а будут видео по STL???)
@SimpleCodeIT6 жыл бұрын
+Alex Shyshkov будут
@bossmusa90754 жыл бұрын
7:30
@alder_hev Жыл бұрын
схемы конечно понятные, но хорошо было бы и на код посмотреть. как задавать этот приоритет например
@nika71492 жыл бұрын
Получается, нам нужно перебрать все элементы очереди, чтобы узнать, что элементов с более высоким приоритетом не осталось? То есть пройтись по всей очереди, убедиться, что элементы с приоритетом 1 закончились, только тогда можно браться за элементы с приоритетом - 2.
@lightseeker745 Жыл бұрын
получается так)
@nikitasuyazov20605 ай бұрын
То есть по сути есть 3 очереди, каждая из которых по приоритету стоит в одной большой очереди? Сначала очередь с элементами "1", потом "2" и т.д.
мне одному показалось что голос Сергея похож на голос ValeraGhost который обзоры игр делает?
@s.question20126 жыл бұрын
Здравствуйте. У меня один вопрос возник, никак не могу найти ответ, можете помочь? Если у нас есть например односвязный циклический список, то как мы можем узнать первый и последний эелементы, если скажем получили доступ с середины списка ? Не могу найти ответ, а сам не понимаю ка сделать. Ведь последний элемент будет всегда указывать на первый. Могу определить только цикличен ли список или нет, а вот найти первый и последний не понимаю как буду очень благодарен за помощь
@МаксимБеликов-ы8г6 жыл бұрын
Не очень понял, что вы хотите, я думаю надо создать два указателя, на первый и последний элементы