Основы программирования на языке C

Стеки


Стеком называется структура данных, загрузка или увеличение элементов для которой осуществляется с помощью указателя стека в соответствии с правилом LIFO (last-in, first-out - последним введен, первым выведен).

Указатель стека sp (stack pointer) содержит в любой момент времени индекс (адрес) текущего элемента, который является единственным элементом стека, доступным в данный момент времени для работы со стеком (для случая, когда указатель стека всегда задает ячейку, находящуюся непосредственно над его верхним элементом).

  1. Начальная установка:

    sp=1;

  2. Загрузка элемента х в стек:

    stack[sp]=x; sp=sp+1;

  3. Извлечение элемента из стека:

    sp=sp-1; x=stack[sp];

  4. Проверка на переполнения и загрузка элемента в стек:

    if(sp<=sd) {stack[sp]=x;sp=sp+1} else// переполнение

    Здесь sd - размерность стека.

  5. Проверка наличия элементов и извлечение элемента стека:

    if (sp>1){sp=sp-1;x=stack[sp]} //антипереполнение

  6. Чтение данных из указателя стека без извлечения элемента:

    x=stack[sp-1];



Содержание раздела