Лабораторная работа 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()
Можно реализовать на массиве с управлением индексами.