Представлення дека, приоритетної черги та дисципліни їх обслуговування

Страницы работы

Содержание работы

ЗАВДАННЯ №2.  ДЕК, ПРИОРИТЕТНА ЧЕРГА.

2.1. Мета: Отримання та закріплення знань про представлення дека, приоритетної черги та дисциплінах їх обслуговування.

2.2. Індивідуальне завдання

Розробити підпрограми, що забезпечують запис та читання запитів з приоритетної черги, стека або дека; Для організації вказаних структур використати масиви та списки. Перевірити працездатність розроблених підпрограм. Послідовність виконання операцій запису та читання обирати випадково. Порівняти результати роботи, зробити висновки.

Варіант індивідуального завдання  n визначається  так:

n = N mod 15

де N – номер студента у журналі групи.

0)  Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (початку черги). Черга організована на масиві із зсувом після кожного читання та та на масиві із зсувом після досягнення границі пам’яті, що виділена для черги. Приоритет: мin значення числового параметра; при співпаданні параметрів – LIFO.

1)  Розробити підпрограми роботи Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та на двоспрямованому списку. Операції виконуються з обох кінців дека.

2)  з приоритетною чергою. Постановка запитів в чергу виконується підряд в кінець черги, зняття – по приоритету. Черга організована на масиві та списку. Приоритет: мin значення числового параметра; при співпаданні параметрів - LIFO.

3)  Розробити підпрограми роботи із стеком. Стек організований на масиві та на двоспрямованому списку.

4)  Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та на двоспрямованому списку. Операції виконуються з різних кінців дека.

5)  Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (з початку черги). Черга організована на масиві із циклічним заповненням та із зсувом. Приоритет: мах значення числового параметра; при співпаданні параметрів – FIFO.

6)  Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд із старших адрес (кінця черги). Черга організована на масиві та на списку. Приоритет: мах значення числового параметра; при співпаданні параметрів – FIFO.

7)  Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та із зсувом. Операції виконуються з обох кінців дека.

8)  Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (початку черги). Черга організована на масиві із циклічним заповненням та списку. Приоритет: мах значення числового параметра; при співпаданні параметрів – FIFO.

9)  Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та із зсувом. Операції виконуються з різних кінців дека.

10) Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (з початку черги). Черга організована на масиві із зсувом після кожного читання та на масиві із зсувом після досягнення границі пам’яті, що виділена для черги. Приоритет: мах значення числового параметра; при співпаданні параметрів – FIFO.

11) Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (з початку черги). Черга організована на масиві із циклічним заповненням та із зсувом. Приоритет: мin значення числового параметра; при співпаданні параметрів – LIFO.

12) Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд із старших адрес (кінця черги). Черга організована на масиві та на списку. Приоритет: мin значення числового параметра; при співпаданні параметрів – LIFO.

13) Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (з початку черги). Черга організована на масиві із циклічним заповненням та списку. Приоритет: мin значення числового параметра; при співпаданні параметрів – LIFO.

14) Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується підряд в кінець черги, зняття – по приоритету. Черга організована на масиві та списку. Приоритет: мax значення числового параметра; при співпаданні параметрів - FIFO.

   2.3. Типове завдання

Розробити підпрограми роботи з приоритетною чергою. Постановка запитів у чергу виконується підряд в кінець черги, зняття – по приоритету. Чергу реалізувати на масиві.

5.5.1.  Текст програми.

#include<conio.h>

#include<iostream.h>

#include<mem.h>

#include<stdlib.h>

int och[512];                 //черга на 512 запитів

int point=-1;                 //вказівник на чергу

int addel (int a)             //додавання запиту у чергу

{

  if (point<511) och[point++]=a;

  else

  {

     cout << "enough queue\n" //черга переповнена

     return 0;

  }

  return 1;

}

 void delel (void)            //читання запиту з черги

{

  if (point>=0)

  {

    int max=och[0], nmax=0;   // пошук запиту з максимальним параметром

    for(int i=1; i<point; i++)

    if (max<och[i]) max=och[i], nmax=i;

    cout<<"read   "<<max<<endl;

    point--;                  //зсув черги

    for(i=nmax; i<point; i++) och[i]=och[i+1];

  }

}

 void printoch (void)         //вміст черги

{

  if (point>=0)

  {

    cout<<": ";

    for (int i=0;i<point;i++)

       cout<<och[i]<<" ";

    cout<<"\n";

  }

}

 void main (void)

  {

   int op,f;

   clrscr();

   do

   {

     op=random(2);            //0-запис запиту, 1- читання

     f=random(15);            //запит

     if (op) delel();

     else if (! addel(f)) exit(1);

     printoch ();

     getch();

    }

   while (1);

}

5.5.2.  Фрагмент результатів роботи програми

. . .

12  5  3  0  14  6  1  14  6  2  3

read 14

12  5  3  0   6  1  14  6  2  3

read 14

12  5  3  0   6  1   6  2  3

12  5  3  0   6  1   6  2  3  7

read 12

5  3  0   6  1   6  2  3  7

. . .

Похожие материалы

Информация о работе