Добавил:
AiSora
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные / Очередь
.cpp#include <iostream>
using namespace std;
int n;
struct Node;
static Node* top = NULL; //Указатель на последнее введеное значение
static Node* last = NULL; //Указатель на первое вв. значение
struct Node
{
Node(int n) //Создание нового элемента
{
count = n;
}
int count;
Node* next; //Указатель на последующий элемент, после ввода значения
};
void push(int N)
{
Node* p;
if (top)
{
p = new Node(N);
top->next = p;
top = p;
p->next = NULL;
}
else
{
top = new Node(N);
last = top;
top->next = NULL;
}
};
void pop()
{
int c;
if (last)
{
c = last->count;
Node* p = last;
last = last->next;
delete p;
cout << c <<endl;
}
else
cout << "Error! \n";
};
void print()
{
Node* p = last;
while (p)
{
cout << p->count << " ";
p = p->next;
}
cout << ".\n";
};
int main()
{
int menu;
while (1)
{
cout << "Menu:\n1.Push element; \n2.Pop element; \n3.Vivesti ves' stack; \n0.Exit. \n";
cin >> menu;
switch (menu)
{
case 1:
{
cout << "Vvedite znachenie \n";
cin >> n;
push(n);
system("cls");
break;
}
case 2:
{
pop();
system("pause");
system("cls");
break;
}
case 3:
{
print();
system("pause");
system("cls");
break;
}
case 0:
{
exit(1);
}
default:
{
cout << "Vvedite zanovo";
system("pause");
system("cls");
break;
}
}
}
return 0;
}