Абстрактный тип данных “стеꔶ
Абстрактный тип данных для стека определяется следующими структурой и операциями. Как писалось выше, стек организован как упорядоченная коллекция элементов, добавляемых и удаляемых из конца, называемого “вершина” (LIFO-упорядоченность). Ниже представлены операции над стеком.
- Stack() создаёт новый пустой стек. Параметры не нужны, возвращает пустой стек.
- push(item) добавляет новый элемент на вершину стека. В качестве параметра выступает элемент; функция ничего не возвращает.
- pop() удаляет верхний элемент из стека. Параметры не требуются, функция возвращает элемент. Стек изменяется.
- peek() возвращает верхний элемент стека, но не удаляет его. Параметры не требуются, стек не модифицируется.
- isEmpty() проверяет стек на пустоту. Параметры не требуются, возвращает булево значение.
- size() возвращает количество элементов в стеке. Параметры не требуются, тип результата - целое число.
Например, если s - свежесозданный пустой стек, то в таблице 1 показаны результаты проведения над ним определённой последовательности операций. Для согласования с сущностью стека верхний элемент будет ставить на самое правое место в списке.
Операция над стеком | Содержание стека | Возвращаемое значение |
---|---|---|
s.isEmpty() | [] | True |
s.push(4) | [4] | |
s.push('dog') | [4,'dog'] | |
s.peek() | [4,'dog'] | 'dog' |
s.push(True) | [4,'dog',True] | |
s.size() | [4,'dog',True] | 3 |
s.isEmpty() | [4,'dog',True] | False |
s.push(8.4) | [4,'dog',True,8.4] | |
s.pop() | [4,'dog',True] | 8.4 |
s.pop() | [4,'dog'] | True |
s.size() | [4,'dog'] | 2 |