Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Frayerok
11 / 11 / 1
Регистрация: 19.12.2009
Сообщений: 59
#1

Работа с приоритетной очередью - C++

17.05.2012, 01:53. Просмотров 378. Ответов 0
Метки нет (Все метки)

Здравствуйте уважаемые форумчане. Нужно написать программу работы с приоритетной очередью. Вот собственно задание: "Есть 2 очереди, организованные на массивах и списках. Вторая очередь приоритетная. Постановление процессов в очередь выполняется подряд в начало второй очереди, процесс сразу начинает исполнятся. После прерывания, процесс становится в первую очередь. Исполнение LIFO."
Вот кое какие наброски, но скорее всего, здесь нужно будет подправить логику работы программы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# include <iostream.h>
# include <conio.h>
# include <stdlib.h>
# include <stdio.h>
# include <time.h>
 
struct d {
    int s;
    d *n;
    d *p;
    };
 
void main(void) {
     clrscr();
     randomize();
     int m[3][7]={{-7,20,-1,1,12},{11,-12,33,17,0,-32,50},{3,22}};
     int k[3]={5,7,2};
     int s[2]={3,1};
     int tm[3]={0,2,10};
     int ts[2]={15,20};
     int t;
     d *begin[2]={NULL,NULL};
     d *last=NULL;
     d *list=NULL;
     for (int j=0;j<2;j++)
      for(int i=0;i<s[j];i++)
    if (begin[j]==NULL)
        {last=new d;
         begin[j]=last;
         last->s=random(10)-5;
         last->p=NULL;
         last->n=NULL;
         list=last;}
     else {last=new d;
           list->n=last;
           last->s=random(10)-5;
           last->p=list;
           last->n=NULL;
           list=last;}
     int dod,dod1[7];
     for (int i=0;i<3;i++)
    for (j=0;j<k[i];j++)
        for (int y=0; y<k[i]; y++)
         if (m[i][j]>m[i][y])
          {dod=m[i][j];m[i][j]=m[i][y];m[i][y]=dod;}
     for (i=1;i<3;i++)
    for (j=1;j<3;j++) if (m[i][0]>m[j][0])
          {for (int t=0;t<7;t++) {dod1[t]=m[i][t];m[i][t]=m[j][t];m[j][t]=dod1[t];};
           dod=tm[i];tm[i]=tm[j];tm[j]=dod;
           dod=k[i];k[i]=k[j];k[j]=dod;}
 
     for (i=0;i<2;i++){
      last=begin[i];
      while(last){
       list=begin[i];
       while(list){
    if (last->s>list->s) {int l1=list->s;
                  list->s=last->s;
                  last->s=l1;}
    list=list->n;
    }
       last=last->n;
      }}
 
     textcolor(10);
       cprintf("ЙННННННННННННННННННЛННННННЛНННННННННННННННН»\n");
     gotoxy(1,1);
     cprintf("\nєVremya postuplena єProcesє Vremya ispolnjaє");
     cout<<"\r\n";
     cprintf("-------------------------------------------");
     cout<<"\n";
     int k11=3;
     for (i=0;i<3;i++)
    for (j=0;j<k[i];j++){
      cout<<"        "<<tm[i];
      gotoxy(22,k11);
      cout<<m[i][j];
      gotoxy(36,k11);
      textcolor(i+1);
      cout<<random(2)+3<<"\n";
      k11++;}
     cout<<"\n";
 
     for (i=0;i<1;i++)
      for (j=i+1;j<2;j++)
       if (begin[i]->s<begin[j]->s)
    {d *l1=begin[i];
     begin[i]=begin[j];
     begin[j]=l1;}
     k11=18;
     for (i=0;i<2;i++){
      last=begin[i];
      while(last){
    cout<<"        "<<ts[i];
    gotoxy(22,k11);
    cout<<last->s;
    gotoxy(36,k11);
    cout<<random(2)+3<<"\n";
    k11++;
    last=last->n;
      }}
     getch();
    }
Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2012, 01:53     Работа с приоритетной очередью
Посмотрите здесь:

C++ работа с очередью
Access Violation при работе с очередью C++
C++ Программа с очередью
C++ Программа работы с очередью подскажите пожалуйста
C++ разобраться с очередью
C++ Ошибка в цикле с очередью
Работа со стеком и очередью C++
Работа с очередью, список C++
C++ Разработать подпрограммы работы с приоритетной очередью
Ошибка при работе с очередью C++
Построить класс для работы с очередью C++
C++ Создайте класс с цикличной очередью целых

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 07:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru