# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
void Adding(void);
void Pusto(void);
void Izvlech(void);
void Printe(void);
struct S{
int x;
int y;
};
int Last=-1;
struct S stek[6];
struct S *st=stek;
void main(void){
Printe();
return;
}
void Printe(void){
char kluch;
printf("\nЧто сделать со стеком?");
printf("\n1 = Добавить один элемент");
printf("\n2 = Проверка, определяющая, пуст ли стек");
printf("\n3 = Извлечение одного элемета");
printf("\n4 = Выход");
kluch=getch();
switch(kluch){
case '1': Adding(); break;
case '2': Pusto(); break;
case '3': Izvlech(); break;
case '4': exit(1);
}
return;
}
void Adding(void){
int f;
int fg;
if(Last<5){
Last++;
printf("\nВведите добавляемые x и y через пробел:");
scanf("%d %d",&f,&fg);
(st+Last)->x=f;
(st+Last)->y=fg;
printf("\n Добавленные элементы: %d, %d",f,fg);
getch();
}
else{
printf("\n Стек полон!");
getch();
}
Printe();
return;
}
void Pusto(void){
if(Last==-1){
printf("\n Стек пуст!");
}
else{
printf("\n Стек не пуст");
}
getch();
Printe();
}
void Izvlech(void){
if(Last>-1){
int f;
int fg;
f=(st+Last)->x;
fg=(st+Last)->y;
(st+Last)->x=(st+Last)->y=0;
Last--;
printf("\n Извлечено: %d, %d",f,fg);
getch();
}else{
printf("\nОперация невозможна, стек пуст!");
getch();
}
Printe();
return;
}
