Всё про Алгоритмы и Структуры данных
Ir al canal en Telegram
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество, авторские права: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/structuredata
Mostrar más7 756
Suscriptores
-124 horas
-37 días
-2530 días
Archivo de publicaciones
⚡️ Skillbox подали иск на телеграм канал CourseHunter
Теперь CourseHunter грозит блокировка, но они продолжают сливать платные курсы самых топовых онлайн школ.
Успей сохранить, пока канал не забанили: https://t.me/+W4heP2l59PM3NGEy
Накупить курсов на 100,000₽ или поехать отдыхать? Выбор за вами, но теперь можно и на отдых поехать и курсы проходить!
Спросите "как??" - Просто! Появился канал CourseHunter, где сливают самые популярные курсы от топовых школ совершенно бесплатно.
Успей сохранить канал, пока его не забанили:
https://t.me/+6lyvOgXCLm9jNDU6
Второй способ решения задачи из стека в очередь
В этом случае операция dequeue будет для нас дорогостоящей. При операции enqueue новый элемент вводится наверх stack1. А при операции удаления из очереди, если stack2 пуст - все элементы перемещаются в stack2 и возвращается вершина stack2.
enqueue операция:
1. Push x в stack1(если учитывать что размер стека бесконечный)
Time Complexity: O(1)
dequeue операция:
1. Если оба стека пусты - кинуть ошибку
2. Если stack2 пустой - то пока не будет пустой stack1 пихать все значения в stack2
3. Pop() элемент из stack2 и вернуть его пользователю
Time Complexity: O(N)
1. Frontend Planet – самые продуктивные приложения собраны в одном месте.
2. IT MIX– канал с полезными шпаргалками, которые облегчат вам жизнь.
3. Frontend Project - здесь собраны лучшие проекты с codepen.
4. Visual Studio Code - канал с плагинами, которые прокачают ваш редактор кода.
✔️(Жми на название канала и получай знания)
Задача: реализовать очередь через стек
Нам дается структура данных стека с операциями push и pop, задача - реализовать очередь с использованием экземпляров структуры данных стека и операций над ними.
Очередь может быть реализована с использованием двух стеков. Пусть очередь, которая будет реализована, равна q, а стеки, используемые для реализации q, - stack1 и stack2. q можно реализовать двумя способами:
Метод 1 Метод гарантирует: что самый старый введенный элемент всегда находится наверку stack1, так что операций dequeue() просто достает значения из stack1. Чтобы поместить элемент вверху stack1, используется stack2
enqueue(x) операция:
1. пока stack1 не пустой, пушить все из stack1 в stack2
2. push x в stack1 (учитывая что стек бесконечный)
3. cнова все данные из stack2 запушить в stack1
Time Complexity: O(N)
dequeue операция:
1. если stack1 пустой - вернуть ошибку
2. достать(pop) элемент из stack1 и вернуть его
Time Complexity: O(1)
Команда айтишников из Яндекса создала канал, где обучает фронтенду и созданию необычных анимаций
По словам ребят, фронтенд – одна из самых перспективных ниш в айти. Даже полный лентяй сможет освоить её за 2-3 недели и начать зарабатывать.
На этом канале есть всё для этого. Зашли – выбрали понравившийся эффект – с нуля воссоздали его по готовой инструкции.
💡Не упусти шанс освоить профессию мечты – @vollex_frontend
Основные операции над очередью
Операции над очередями включают в себя инициализацию или определение очереди, ее использоание, а также полное удаление.
Основные операции:
1. enqueue() - добавить(сохранить) элемент в очередь
2. dequeue() - удалить элемент из очереди и дать к нему доступ
3. peek - получит элемент в начале очереди без его удаления (очень похоже на стек функцию)
3. isEmpty() - проверяет пуста ли очередь
4. isFull() - проверяет заполнена ли очередь
Как вы можете заметить функции очень похоже на то, что было у стека.
class Python - интерактивный канал-учебник по Python.
Очень просто, Флэтчер, как и все остальное. Практика.
➖ Возможность запускать код с любого устройства прямо в канале
➖ Алгоритмы, фишки языка, книги и статьи
➖ Задачи разных уровней сложности и их автоматическая проверка
Присоединяйся: @class_python
Структура данных: Очередь
Рядом со структурой данных стек, всегда идет и очередь. Очередь - это абстрактная структура данных. В отличии от стека - очередь открыта с обоих концов. Один конец необходим для вставки данных в очередь, другой для их удаления.
Очередь работает по правилу: "Первым пришел - первым обслужен" FIFO. То есть как тепичная очередь на почту или за какими-то документами.
Также реальным примером можно назвать к примеру пробку машин в городе. Там транспортное средство стоящее впереди (в идеальном мире), проедет быстрее своего собрата, что стоит сзади и ожидает пока проедут все впереди.
👨💻 Просто Python - первый канал, в котором действительно просто говорят о Python.
Проводи время с пользой даже в телеграм -> @prosto_python
P.S В закрепе висят ссылки на бесплатные курсы по Python
Алгоритмы Push/Pop функций в Stack
Я решил остановится более основательно на основных 2ух функциях стека, чтобы вы понимали, как под капотом они работают.
Операция Push
Алгоритм данной функции следущий:
1. Проверить заполнен ли стек
2. Если стек заполнен, выдать ошибку и завершиться
3. Если стек не заполнен, увеличиваем размер
4. Добавляем элемент в конец стека (туда куда указывает наш Head)
5. Возвращаем (если необходимо) результат о добавлении элемента
Операция Pop
У данной функции очень похожий алгоритм на push, только в обратном порядке и с целью достать элемент
1. Проверяет пустой ли стек
2. Если стек пуст, выдать ошибку и завершить процесс
3. Если стек не пуст, взять элемент на который указывает вершина.
4. Уменьшить размерность на 1
5. Вернуть сам элемент
Данные алгоритмы будет не сложно сделать как на массиве(причем во многих языках это уже реализовано, к примеру Python), так и на LinkedList, который вы реализовали до этого.
⚡️Выучить Python за месяц — реально!
Стоит начать читать канал Python Teacher. Каждый день ребята постят только нужную и полезную инфу:
– Авторские статьи, книги и пособия.
– Советы от лучших преподавателей.
– Полезные фишки и фичи языка.
Присоединяйся: @Python_Teacherr
5 классических алгоритмов машинного обучения, о которых вам обязательно следует знать
https://proglib.io/p/5-klassicheskih-algoritmov-mashinnogo-obucheniya-o-kotoryh-vam-obyazatelno-sleduet-znat-2022-08-16
Для тех кто просил, канал с мемами для программистов и айтишников👇
https://t.me/+QTlu_HRaIcJjYjcy
Основные операции над стеком
Как вы поняли выше, у стека есть две основные операции:
1. Push - поместить элемент в стек
2. Pop - достать (и удалить) элемент из стека
Но для более эффективного взаимодействия со стеком, нам необходимо еще реализовать пару функций:
1. Peek - получить верхний элемент из стэка (но его не удалять, как это делает pop)
2. isEmpty - проверить не пустой ли сейчас наш стек
3. для фиксированного размера стеков удобно использовать еще и isFull() - проверить заполнен ли стек полностью
Структура данных: Стек
Раз мы вчера затронули тему стека в решении задачи, то стоило бы рассказать: что из себя представляет данная структура данных.
Стек - абстрактный тип данных, который используется в большинстве языков программирования.
Реальный стек допускает операции только с одного конца. Например, мы помещаем или убираем тарелку(пример на посуде), только из верхней части стопки этих тарелок.
Эта особенность делает его структурой данных LIFO (последний пришел первым вышел). То есть тут элементы, которые помещены последними, доступны вам будут первыми. (push и pop операции)
Стек может быть реализован при помощи Array, LinkedList. Он может быть как фиксированного размера, так и динамически расширяться.
Есть много хороших
python-разработчиков
Этим уже не удивить, в том числе работодателя — выберут не тебя, хорошего разраба, а того, который лучший.
Как стать лучшим? Не переставай учиться. С этим поможет канал Python Universe — место, где самые прошаренные питонисты-эксперты делятся драгоценными знаниями каждый день и бесплатно.
Подпишись и убедись сам - Python Universe
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
