Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Звіт
з лабораторної роботи №1
Алгоритми та методи обчислень
Основи аналізу алгоритмів
Завдання: реалізувати програмний продукт (мова програмування на ваш розсуд) згідно наступних варіантів:
Варіант №
Завдання
Примітка
2
Структура даних «Черга»
Реалізувати структуру даних та всі необхідні операції для роботи з нею
Код програми на мові C++:
#include <iostream>
using namespace std;
class Queue {
static const int size1=50;
int *queue;
int first, last;
public :
Queue();
void push(int num);
void pop();
friend void out(Queue q);
int size();
int front();
int back();
};
Queue::Queue()
{
queue = new int[size1];
first = last = 0 ;
}
void out(Queue q)
{
for(int i=q.first+1;i<q.last+1;i++)
{
cout<<" "<<q.queue[i];
}
}
void Queue::push (int num)
{
if ((first+1==first) || ( last+ 1==size1&&(!first) )) {
cout << "queue is full! error!";
return ;
}
last++;
if (last==size1) last = 0;
queue [last] = num;
}
void Queue::pop()
{
if (first == last)
{
cout << "queue is empty! error!";
return;
}
first++;
if (first==size1) first = 0;
}
int Queue::size()
{ int s=0;
for(int i=first;i<last;i++)
{
s++;
}
return s;
}
int Queue::back()
{
return queue[last];
}
int Queue::front()
{
return queue[first+1];
}
int main ()
{
Queue queue1;
cout<<"choose number:"<<endl<<endl;
cout<<"1.push number"<<endl<<"2.pop number"<<endl<<"3.show queue"<<endl
<<"4.size of queue"<<endl<<"5.exit"<<endl<<endl;
int vvid=0, numm=0;
for(int i=0; i<20; i++)
{
cin>>vvid;
switch (vvid){
case 1:{
cout<<"enter number: ";
cin>>numm;
queue1.push(numm);
break; }
case 2:{
queue1.pop();
break; }
case 3:{
cout<<"queue:";
out(queue1);
break; }
case 4:{cout<<"size: "<<queue1.size();
break;}
case 5:{
return 0;
break; }
default:{
cout<<"ERROR!"<<endl;
return -1;}
}
}
return 0 ;
}
Результат виконання програми:
Висновки: на лабораторній роботі №1 я реалізувати структуру даних «черга» та всі необхідні операції для роботи з нею.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!