Лабораторная работа 11. Структуры данных
1. Реализуйте структуру Stack с методами:
push(value)— добавить элемент в стек.pop()— удалить и вернуть верхний элемент.peek()— вернуть верхний элемент без удаления.is_empty()— проверить, пуст ли стек.
Можно использовать список (list) как внутреннее хранилище.
В методе
push— используйтеappend.В методе
pop— используйтеpop(), но сначала проверьте, не пуст ли стек.Метод
peekвозвращает последний элемент, но не удаляет его:self.stack[-1].
Не забудьте обработать ситуации, когда пытаются извлечь из пустого стека.
2. Реализуйте класс Queue с методами:
enqueue(value)— добавить элемент в конец очереди.dequeue()— удалить и вернуть элемент из начала очереди.peek()— просмотреть первый элемент.is_empty()— проверить, пуста ли очередь.
Используйте список (
list) как внутреннее хранилище.Добавление (
enqueue) — черезappend.
Удаление (dequeue) — через pop(0).
3. Реализуйте структуру Deque (Double-Ended Queue), поддерживающую операции:
add_front(value)— добавить в начало.add_rear(value)— добавить в конец.remove_front()— удалить из начала.remove_rear()— удалить из конца.peek_front()иpeek_rear()— просмотреть элементы.is_empty()
Можно реализовать на массиве с управлением индексами.