готовлюсь к собесу и прогоняю все снова. 1 курс универа Вадим, сложно переоценить насколько легче стал мой путь благодаря твоим видео, спасибо)
@qwerty89993 Жыл бұрын
Спасибо Вадим! Жаль, что канал забросили, надеюсь что когда-нибудь он снова оживёт
@vadimklimenko90025 жыл бұрын
предлагаю еще одну ассоциацию для стека: магазин(обойма) с патронами. Когда делаешь push, патрон уходит в магазин, когда pop - пружина выталкивает верхний патрон наружу )
@CODEBLOG5 жыл бұрын
Да, согласен, отличная аналогия. Я ее кстати уже когда-то давно использовал. на сайте своем еще наверное )
@I-PixALbI4-I4 жыл бұрын
Я с помощью стека реализовывал калькулятор на Обратной Польской Записи, там использовался Stack для этого.
@olegmarkelov61203 жыл бұрын
На времени 26:00 ошибка в реализации метода Pop() (стек реализованный на списке List). Remove удаляет из списка первое найденное вхождение переданного аргумента и смотрит он не с конца списка, а с начала. Засада произойдёт, если в стеке будет несколько одинаковых элементов. Если у нас будет стек интов 8 20 7 8 2 Pop() нам вернёт 8, но стек после этого будет выглядеть следующим образом 8 20 7 2
@alexnikes45933 жыл бұрын
Верно, в предложенной автором реализации метод работает некорректно. И если это кому-то поможет - вот слегка измененный рабочий вариант: public T Pop() { if (!IsEmpty) { var item = items.LastOrDefault(); var itemIndex = items.LastIndexOf(item); // возвращает индекс последнего вхождения в списке объекта item items.RemoveAt(itemIndex); // удаляет из списка элемент по индексу itemIndex return item; } else { throw new NullReferenceException("Стек пуст"); } }
@TedRed2 жыл бұрын
Спасибо, что обратили на это внимание. Не смотря на ошибку, автору огромное спасибо и вам тоже, что заметили её
@CODEBLOG5 жыл бұрын
На этом занятии мы изучим структуру данных под названием стек (stack), которая организует доступ к элементам по принципу "последним пришел - первым вышел" (LIFO)На этом занятии мы изучим структуру данных под названием стек (stack), которая организует доступ к элементам по принципу "последним пришел - первым вышел" (LIFO) Кстати, меня зовут Вадим, и я программист на языке C# уже больше 8 лет. Рассказываю про IT технологии и веду этот курс по языку C# с нуля под названием Учим Шарп. В его рамках мы рассмотрим как базовый синтаксис языка C Sharp, так и его практическое применение и специальные технологии, такие как ASP.NET, Core, MVC, Unity, WCF, WPF, структуры данных и алгоритмы обработки, паттерны проектирования и многое другое. Для меня важно не только показать практическое применение языка C#, но и объяснить основную идею и базовые понятия Computer Science. Уроки c# выходят два раза в неделю в понедельник и четверг в 20-00 по МСК. Курс csharp рассчитан на то, чтобы изучить программирование с нуля. Разработка ведется в IDE Visual Studio. Подписывайтесь, впереди еще много интересного.
@paulodybala42933 жыл бұрын
На 1:18:35 .Если вызвать конструктор класса с двумя аргументами то не возникнет ли потом ошибка при добавлении новых элементов, так как current в конструкторе класса присваивается 1, а потом единица пропускается из за того что мы сначала увеличиваем current?
@paulodybala42933 жыл бұрын
Думаю надо в конструкторе класса с двумя аргументами current присваивать 0
@kurnakovv4 жыл бұрын
Кстати, Peek это достать элемент , посмотреть и положить на место, или просто посмотреть без взаимодействия? Если вопрос не понятен - это достать чипсину осмотреть ее и положить на место, или просто взять банку глянуть и все?
@rain2767 Жыл бұрын
Это достать чипсину из пачки и использовать её как хочешь. Но при всём при этом, чипсина из пачки не пропадает.
@kurnakovv Жыл бұрын
@@rain2767 3 года прошло, уже работаю, но спасибо за ответ :)
@дядявася-м3д4 жыл бұрын
шутка про вибратор прям зашла)))))
@denisosipenko74135 жыл бұрын
Знаю, что такое решение ударит по производительности, но это позволяет реиницализировать массив и избежать переполнения private const int ARRAY_LENGTH = 10; /// /// if array less then need, the method will expand the one. /// public void ReinitArray() { var tempArr = new T[_stack.Length]; Array.Copy(_stack, tempArr, _stack.Length); _stack = new T[tempArr.Length + ARRAY_LENGTH]; Array.Copy(tempArr, _stack, tempArr.Length); tempArr = null; } А клонирование через сериализацию public object Clone() { using (var stream = new MemoryStream()) { var formater = new BinaryFormatter(); formater.Serialize(stream, this); stream.Seek(0, SeekOrigin.Begin); return formater.Deserialize(stream); } }
@CODEBLOG5 жыл бұрын
Ну реализацию через сериализацию я пока еще не встречал, но все равно плюс за интересное решение )
@АлександрШутко-ф9ь2 жыл бұрын
Понимаю что вы в этом специалист и смотреть полностью не стал. Вопрос от профана, при работе с программой ALPHACAM 2017 R2 возникла проблема именно со стеками. В определённый момент выскакивает системное сообщение :"ALPHACAM Ultimate Router: shablon: acam.exe - Системная ошибка не удаётся создать новую страницу защиты для стека. Нажимаю ОК и программа закрывается. В интернете поискал ничего подходящего не нашёл, либо не понял что надо делать. Если возможно, хотя бы подскажите в чем может быть проблема? Напарник недавно ставил новую систему. Windows 10 Pro 21H2 сборка 19044.1415 64-разрядная.
@talisman1104 Жыл бұрын
Это не тот стек, что ты ищешь
@АлександрШутко-ф9ь Жыл бұрын
@@talisman1104 не знаю в чем именно была проблема, но позже полетела винда, переустановилии её и все программы. Больше ошибок нет.
@АнатолеВасерман-ж1йАй бұрын
Стек это обойма пистолета
@ivanomelchenko18954 жыл бұрын
+++
@ndr11115 жыл бұрын
сколько воды, автор совсем не жалеет времени своих слушателей, повторяет одно и то-же, не двигается по теме, что-то перебирает. Как лекция - отвратительно.
@CODEBLOG5 жыл бұрын
Потому что я стараюсь объяснить наиболее подробно, повторить несколько раз, чтобы каждый человек смог понять. кому-то это наоборот нравится, разные люди - разные подходы
@iceberg37855 жыл бұрын
Хочешь быстрого движения по теме - слушай лекции в универе. Там тебя "научат" ))
@АлексейОрёл-к3у3 жыл бұрын
не неси чушь!
@TedRed2 жыл бұрын
Просто каждый по-своему воспринимает. Кому-то проще послушать всё подряд "без воды", кому-то проще с водой, чтобы в это время можно было поразмыслить над сказанным