Головна |
Вид форми і отримані результати представлені на рис. 2.2.
Мал. 2.2
Наведемо лише тексти функцій, відповідних зазначеним кнопок:
. . .
struct Stack {// Декларація структурного типу
int info;
Stack * next;
} * Begin, * t;
// --- Декларації прототипів функцій користувача ---
Stack * InStack (Stack *, int);
void View (Stack *);
void Del_All (Stack * *);
// --- Текст функції-обробника кнопки створити ---
int i, in, n = StrToInt (Edit1-> Text);
if (begin! = NULL) {
ShowMessage ("Звільніть пам'ять!");
return;
}
for (i = 1; i <= n; i ++) {
in = random (20);
begin = InStack (begin, in);
}
Memo1-> Lines-> Add ("Створили" + IntToStr (n) + "-ть.");
// --- Текст функції-обробника кнопки Додати ---
int i, in, n = StrToInt (Edit1-> Text);
for (i = 1; i <= n; i ++) {
in = random (20);
begin = InStack (begin, in);
}
Memo1-> Lines-> Add ("Додали" + IntToStr (n) + "-ть.");
// --- Текст функції-обробника кнопки переглянути ---
if (! begin) {
ShowMessage ("Стек Порожній!");
return;
}
Memo1-> Lines-> Add ("--- Елементи ---");
View (begin);
// --- Текст функції-обробника кнопки Очистити ---
if (begin! = NULL) Del_All (& begin);
ShowMessage ("Пам'ять звільнена!");
// --- Текст функції-обробника кнопки EXIT ---
if (begin! = NULL) Del_All (& begin);
Close ();
// --- Функція додавання елемента в Стек --- ---
Stack * InStack (Stack * p, int in) {
Stack * t = new Stack;
t -> info = in;
t -> next = p;
return t;
}
// --- Функція перегляду Стека --- ---
void View (Stack * p) {
Stack * t = p;
while (t! = NULL) {
Form1-> Memo1-> Lines-> Add ("" + IntToStr (t-> info));
// У командному додатку буде, наприклад, cout « "" « t-> info « endl;
t = t -> next;
}
}
// --- Функція звільнення пам'яті --- ---
void Del_All (Stack * * p) {
while (* p! = NULL) {
t = * p;
* P = (* p) -> next;
delete t;
}
}
Сортування односпрямованих списків | Реалізація завдання в командному додатку
Особливості застосування покажчиків | Динамічне розміщення даних | функції користувача | Доп-1.2. Приклад виконання завдання | Доп-1.3. індивідуальні завдання | Короткі теоретичні відомості | Реалізація завдання в віконному додатку | Реалізація завдання в командному додатку | індивідуальні завдання | Функція формування елемента стека |