Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные / Очередь

.cpp
Скачиваний:
4
Добавлен:
12.02.2018
Размер:
1.53 Кб
Скачать
#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;
}

Соседние файлы в папке Лабораторные