ВУЗ:
Составители:
Рубрика:
148
конец (в эту позицию помещается заносимый в очередь элемент). Раз-
личают два основных вида очередей, отличающихся по дисциплине об-
служивания. При первой из дисциплин элемент, поступивший в очередь
первым, выбирается первым и удаляется из очереди. Эту дисциплину
обслуживания очереди принято называть FIFO (First In – First Out →
первый в очередь – первый из очереди).
Остановимся более подробно на очереди с такой дисциплиной об-
служивания, при которой на обслуживание первым выбирается тот эле-
мент очереди, который поступил в нее последним. Эту дисциплину об-
служивания принято называть LIFO (Last In – First Out → последний в
очередь – первый из очереди). Очередь такого вида в программирова-
нии называют стеком или магазином. В стеке доступна единственная
его позиция, называемая вершиной стека. Это позиция, в которой нахо-
дится последний по времени поступления элемент. Отобразим стек на
подходящую структуру данных языка С++.
25.1. Реализация стека через массив
// Файл stack0.cpp
typedef char ETYPE;
class stack {
enum {EMPTY = –1};
char *s;
int max_len;
int top;
public:
stack ( ) {s = new ETYPE [100];
max_len = 100;
top = EMPTY; // Стек пуст.
}
stack (int size) {s = new ETYPE [size]; max_len = size;
top = EMPTY; }
stack (const ETYPE a [ ], int len){ // Инициализация массивом.
max_len = len;
s = new ETYPE [max_len];
for (int i = 0 ; i < max_len; i ++ ) s[i] = a[i];
top = max_len – 1;
}
stack (const stack & a) { // Инициализация стеком.
s = new ETYPE [a.max_len];
max_len = a.max_len; top = a.top;
for (int i = 0 ; i < max_len; i ++ ) s[i] = a.s[i];}
Страницы
- « первая
- ‹ предыдущая
- …
- 144
- 145
- 146
- 147
- 148
- …
- следующая ›
- последняя »