Что такое стек (stack) в C?

Этот вопрос проверяет понимание принципа работы структуры данных "стек", включая основные операции.

Короткий ответ

Стек — это структура данных, работающая по принципу LIFO (Last In, First Out), что означает, что последний добавленный элемент удаляется первым. Доступ к элементам возможен только с вершины стека. Основные операции:

push() — добавление элемента в стек.

pop() — удаление элемента из стека.

Длинный ответ

Как работает стек:

- В стеке элементы добавляются и удаляются только с одной стороны — вершины (top).

- Принцип работы напоминает стопку тарелок: последняя добавленная тарелка убирается первой.

 

Основные операции:

push(value): добавляет элемент в стек.

pop(): удаляет верхний элемент.

peek(): возвращает верхний элемент без удаления.

isEmpty(): проверяет, пуст ли стек.

 

Пример реализации стека с использованием массива

#include <stdio.h>
#define MAX 5  // Размер стека

int stack[MAX], top = -1;

void push(int value) {
    if (top == MAX - 1) {
        printf("Стек переполнен!\n");
        return;
    }
    stack[++top] = value;
}

int pop() {
    if (top == -1) {
        printf("Стек пуст!\n");
        return -1;
    }
    return stack[top--];
}

int main() {
    push(10);
    push(20);
    printf("Удалён элемент: %d\n", pop());
    return 0;
}

 

Стек используется, когда важно сохранить порядок LIFO, например, в обратном обходе данных, обработке рекурсий и алгоритмах работы с памятью.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • C

Ключевые слова

Подпишись на C/C++ Developer в телеграм