Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
53<br />
} // 0 1 Иванов 2 Петров 3 Сидоров<br />
while (s–>AtLeast (1))<br />
b += AnsiString (s–>Count ()) + ' ' + (char*) s–>Pop () + '\n';<br />
ShowMessage (b + '0'); // 3 Сидоров 2 Петров 1 Иванов 0<br />
}<br />
void SimpleStack() {<br />
TStack *vStack = new TStack;<br />
vStack–>Push ("Пеpвое ");<br />
vStack–>Push ("Втоpое "); vStack–>Push ("Тpетье ");<br />
ShowMessage ("Добавили " + AnsiString (vStack–>Count ()));<br />
vStack–>Pop (); ShowMessage ("Осталось " + AnsiString (vStack–>Count ()));<br />
}<br />
Далее приведен пример разработки авторского символьного стека без<br />
привлечения библиотечного класса TSteak:<br />
const int ARRAYSIZE = 1000;<br />
struct vStack { char s[ARRAYSIZE]; int top; };<br />
void Reset (vStack *stk) { stk–>top = –1; }<br />
int Empty (const vStack *stk) { return stk–>top == –1; }<br />
int Full (const vStack *stk) { return stk–>top == ARRAYSIZE – 1; }<br />
void Push (char *str, vStack *stk) {<br />
int i = 0; while (str[i]) if (!Full (stk)) stk–>s[++stk–>top] = str[i++];<br />
}<br />
void Pop (vStack *stk) {<br />
AnsiString result;<br />
while (!Empty (stk)) result += AnsiString (stk–>s[stk–>top––]) + '\n';<br />
ShowMessage (result);<br />
}<br />
void MyStack () {<br />
vStack s;<br />
Reset (&s);<br />
Push ("Пеpвое ", &s); Push ("Втоpое ", &s); Push ("Тpетье ", &s); Pop (&s);<br />
}<br />
Очередью (queue) <strong>на</strong>зывают последовательность данных, в которой помещение<br />
данных выполняется с одного конца – входа очереди (input), а выборка<br />
– с другого конца – выхода очереди (output) по принципу «первым вошел<br />
– первым вышел» (FIFO – First Input, First Output):<br />
void _ _fastcall TForm1::QueueClick (TObject *Sender) {<br />
AnsiString a[] = { "Иванов", "Петров", "Сидоров" }, b = "0\n";