![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Вид формы и полученные результаты представлены на рис. 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;
}
}
Дата публикования: 2015-02-22; Прочитано: 253 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!