Стеки
Стеком называется структура данных, загрузка или увеличение элементов для которой осуществляется с помощью указателя стека в соответствии с правилом LIFO (last-in, first-out - последним введен, первым выведен).
Указатель стека sp (stack pointer) содержит в любой момент времени индекс (адрес) текущего элемента, который является единственным элементом стека, доступным в данный момент времени для работы со стеком (для случая, когда указатель стека всегда задает ячейку, находящуюся непосредственно над его верхним элементом).
- Начальная установка:
sp=1;
- Загрузка элемента х в стек:
stack[sp]=x; sp=sp+1;
- Извлечение элемента из стека:
sp=sp-1; x=stack[sp];
- Проверка на переполнения и загрузка элемента в стек:
if(sp<=sd) {stack[sp]=x;sp=sp+1} else// переполнение
Здесь sd - размерность стека.
- Проверка наличия элементов и извлечение элемента стека:
if (sp>1){sp=sp-1;x=stack[sp]} //антипереполнение
- Чтение данных из указателя стека без извлечения элемента:
x=stack[sp-1];