getElement(q,&c);
//Распечатываем
printf("%c, ",c);
//Кладем в другую очередь
addElement(p,c);
}
printf("\n--------\n");
//Перекладываем элементы обратно
while(!isEmpty(p)) {
getElement(p,&c);
addElement(q,c);
}
return 1;
}
//Функция поиска элемента в очереди
//1 – элемент найден, 2 – не найден
int find(queue *q, char x) {
//Если очередь пуста, в ней не может быть элементов
if(isEmpty(q))return 0;
//Иначе создаем промежуточную очередь
queue *p=create();
char c;
//Флаг, который определяет, нашли мы или нет элемент
int flag=0;
//перебираем все элементы q
while(!isEmpty(q)) {
getElement(q,&c);
addElement(p,c);
if(c==x)flag=1;
}
//Складываем их обратно
while(!isEmpty(p)) {
getElement(p,&c);
addElement(q,c);
}
//Если найден элемент возвращаем 1 – иначе 0
if(flag==1)return 1;
else return 0;
}
Файл demo.cpp
#include <conio.h>
#include <stdio.h>
//Подключаем файл очереди
#include "queue.cpp"
void main() {
//Очищаем экран
clrscr();
char c = 0;
char x=0;
//Создаем пустую очередь
queue *q=create();
//Пока не нажмем 6…
while(c!='6') {
//Выводим меню
printf("Menu.\n");
printf("1. Dobavlenie elementa\n");
printf("2. Udalenie elementa iz ocheredi\n");
printf("3. Proverit' pusta li ochered'?\n");
printf("4. Vivesti soderzhimoe ocheredi\n");
printf("5. Naiti element.\n");
printf("6. Vihod\n");
//Получаем символ с клавиатуры
c = getch();
if(c=='1') {
//Убираем мусор из потока ввода
fflush(stdin);
printf("Enter the element: ");
scanf("%c",&x);
//Добавляем элемент в очередь
addElement(q,x);
printf("Element dobavlen.\n");
} else if(c=='2') {
//Получаем элемент из очереди
int res = getElement(q,&x);
if(res==0) {
printf("Ochered pusta!\n");
} else {
printf("Element: %c\n",x);
}
} else if(c=='3') {
//Проверяем очередь на пустоту
int r = isEmpty(q);
if(r==0) printf("Ochered ne pusta!\n");
else printf("Ochered pusta!\n");
} else if(c=='4') {
//Выводим очередь
int res = printQueue(q);
if(res==0)printf("Ochered pusta!\n");
} else if(c=='5') {
printf("Enter element to find:");
//Очищаем входной поток от мусора
fflush(stdin);
scanf("%c",&x);
//Ищем элемент
int res = find(q,x);
if(res==1) printf("Element found!\n");
else printf("Element not found!\n");
}
printf("\n\n");
}
}
Меню программы:
Menu.
1. Dobavlenie elementa
2. Udalenie elementa iz ocheredi
3. Proverit' pusta li ochered'?
4. Vivesti soderzhimoe ocheredi
5. Naiti element.
6. Vihod
Добавим в очередь 3 элемента: a,b,c
1 – a – enter
1 – b – enter
1 – c – enter
Выведем содержимое очереди, 4
--------
a, b, c,
--------
Удалим элемент из очереди: 2
Element: a
Проверим содержимое очереди, 4
--------
b, c,
--------
Проверим, пуста ли очередь, 3
Ochered ne pusta!
Найдемэлемент a
Element not found!
Найдем элемент b
Element found!
Удалим элемент из очереди: 2
Element: b
Удалим элемент из очереди: 2
Element: c
Проверим, пуста ли очередь, 3
Ochered pusta!
Удалим элемент из очереди: 2
Ochered pusta!
Выход, 5
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.