[С++ ]

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

push(item); //добавляет данные в стек
pop(); //извлекает последний элемент

Очередь - структура данных с доступом к элементам по принципу FIFO (First In First Out - Первый пришел - Первый вышел). Данные добавляются в конец, а извлекаются из начала. Для быстрого добавления и извлечения данных понадобится два указателя, один на начало, очереди, второй на ее конец. Для работы с очередью используются функции:

enqueue(item); //добавляет новый элемент в очередь
dequeue(); //извлекает элемент из очереди

 

 

Затем, вам необходимо создать элемент данных вашего стека (очереди). Например:

struct data {
    int p;
    int c;
}

После этого обзавестись ячейкой стека. Например:

struct element {
 data element_data;
 element *next; //указатель на следующий элемент
}

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