Тема: Черга С ++
Реалізувати чергу для зберігання і операцій з даними виду:
Найменування пристрою /// Рік випуску /// Вартість
Забезпечити виконання операцій:
• додавання елемента в чергу;
• видалення елемента з черги в порядку запису;
• визначення позиції елемента в черзі;
• видалення всіх елементів із заданим полем;
• роздрукування черзі.
#include "stdafx.h"
#include "iostream"
#include <string>
#include <stdlib.h>
using namespace std;
struct Queue
{
char ElQueue;
Queue *Next;
} *Head, *p;
int symbol = 97;
void Menu();
void AddQueueEnd(Queue *El);
void Show();
void DeleteEl();
int main()
{
setlocale(LC_ALL, "RUS");
Head = NULL;
while (1)
{
Menu();
int k = 0, c = 0;
cin >> k;
cout << endl;
switch (k)
{
case 1:
{
cout << "Введiть число елементiв черги, яке потрiбно додати: " << endl; cin >> c;
for (int i = 0; i < c; i++)
{
p = new Queue; p->ElQueue = symbol; ++symbol; p->Next = NULL; AddQueueEnd(p);
} cout << "Елементи доданi в чергу" << endl; system("pause"); system("cls"); break;
}
case 2:
{
cout << "Введiть число елементiв черги, яке потрiбно додати: " << endl; cin >> c;
for (int i = 0; i < c; i++)
{
DeleteEl();
} system("pause"); system("cls"); break;
}
case 3: { if (Head) Show(); else cout << "Порожнiй" << endl;
system("pause"); system("cls"); break; }
case 4: { exit(0); break; }
}
}
system("PAUSE");
return 0;
}
void Menu() {
cout << "Черга: " << endl << endl;
cout << "1 - Додати n елементiв в чергу" << endl;
cout << "2 - Видалити n елементiв з черги " << endl;
cout << "3 - Вивести чергу" << endl;
cout << "4 - Вихiд" << endl << endl;
cout << "Виберiть режим роботи" << endl;
}
void AddQueueEnd(Queue *El)
{
Queue *temp = new Queue;
if (Head == NULL) {
Head = El; return;
}
else temp = Head;
while (temp->Next != NULL)
{
temp = temp->Next;
}
temp->Next = El;
}
void Show()
{
int c= 0;
Queue *temp = Head;
cout << "-----" << endl;
while (temp != NULL)
{
cout << "Елемент " << temp->ElQueue << '\t' << ++c << "-й зайшов " << c << "-й в черзi на вихiд" << endl ;
temp = temp->Next;
}
cout << "-----" << endl;
cout << "Черга iз " << c << " елементiв" << endl;
}
void DeleteEl()
{
cout << "Елемент " << Head->ElQueue << " - вийшов з черги" << endl;
Queue *temp = Head->Next;
delete Head;
Head = temp;
}