Вопрос Помогите понять фрагмент кода на c++

Что не понятно?
 
Грубо говоря создается структура с именем stack;
int inf создается переменная для целых чисел без запятых.
stack* pre; создается походу указатель на stack и зовется pre.
с указателем возможно я ошибаюсь.
 
Это определение структуры данных "стек" на языке C++.

Структура состоит из двух полей:

1. int inf - поле, хранящее информацию о значении элемента стека.
2. stack* pre - указатель на предыдущий элемент стека.

Таким образом, каждый элемент стека содержит информацию о своем значении и указатель на предыдущий элемент.

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

Для работы со стеком используются операции push (добавление элемента в стек), pop (удаление элемента из стека) и top (получение значения верхнего элемента стека без его удаления).
 
У обычных линейных массивов есть недостаток - удаление или добавление элементов занимает много времени из за необходимости создавать новый массив другого размера и копирования в него всех элементов кроме удаленного или с добавляемым. Решение - сделать такой массив, каждая ячейка которого "знает", где расположен следующий элемент. Тогда для удаления элемента достаточно в предыдущем изменить указатель так, чтобы он указывал на следующий элемент после удаляемого.
На фрагменте кода типичная ячейка такого массива (однонаправленный список), в которой хранится полезная информация - "inf" и знание где расположена следующая ячейка - "pre" (в данном примере - предыдущая, но смысла это не меняет :)
Хотя это может быть и просто ни как не связанные две переменных - мало что у программиста на уме.
 
Назад
Сверху