Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про C: stack, lifo, push, pop

Что такое стек (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

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

#stack

#lifo

#push

#pop

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