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

Очередь - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамический массив указателей http://www.cyberforum.ru/cpp-beginners/thread163417.html
Чегото не пойму такое вообще возможно? Странно, что при объявлении можно не указывать размерность: int *a; Но как потом память выделять не известно. Добавлено через 2 минуты p.s. прошу не путать с указателем на массив.
C++ Как выразить в С корень n-степени. Как выразить в С корень n-степени. Подскажите. http://www.cyberforum.ru/cpp-beginners/thread163391.html
C++ Объявление структуры и класса
Ругается на строку obj_cls.prv=3; и на объявление класса. Что у меня не правильно? #include <iostream> using namespace std; struct str { int pub; private: int prv;
Вычисление факториала C++
Помогите пожалуйста вычислить факториал:
C++ Сделать функцию "Команда" http://www.cyberforum.ru/cpp-beginners/thread163290.html
Может кто помочь написать функцию "команда", т.е. например в консольном приложении вводишь команду, например hello, в ответ выводится hello world и тому подобное, задавать команду примерно так: command("hello") { printf ("Hello World\n"); }
C++ Приложения для телефона Писать приложения для телефона можно только на Java? Просто я слышал, что можно писать на си++ приложения для телефона, это правда? подробнее

Показать сообщение отдельно
bobromet
24 / 24 / 1
Регистрация: 06.03.2010
Сообщений: 59
04.09.2010, 19:49     Очередь
Кажется я понял в чем фишка. Это видимо задание по алгоритмам - симуляция очереди. Дается массив фиксированной величины, например 5 потом он заполняется "клиентами". Клиентов можно убирать и засовывать. С помощью модуля определяется логическое положение счетчика. Я могу ошибатся . Вообщем вот прожка, там лутьше видно что я имею ввиду. Первый индекс выбрасывается, то есть массив начинается с [1]. Заранее извиняюсь за этот неорганизованный поток сознания.

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
#include <iostream>
#include <string>
using namespace std;
 
const int MAX = 5;
static int arr[MAX + 1]; // [0] индекс пропускаем
static int head, tail, n;
 
void view()
{
    cout << "\nArray  ";
    for (int i = 1; i <= MAX; i++)
        {
        cout << arr[i] << " ";
        }
 
    if (n > 0)   //состояние очереди
    {
        int pos = head;
        cout <<"\nQueue:";
        while (pos != tail)
        {
            cout << " " <<arr[pos];
            pos = (pos % MAX) + 1;
        }
        cout << " "<<arr[tail] <<endl;
    }
    else cout <<"\nwse ubiti :(";
 
}
 
static void enqueu()
{
    if (n == MAX)
    {
        cout <<"net mesta\n";
    }
    else
    {
        tail = (tail % MAX) + 1; //присваиваем счетчику следующее значение
        cin >> arr[tail];
        cout << "klient " << arr[tail]<< " prishol\n";
        n++;
    }
}
 
static void dequeue()
{
    if (n == 0)
        cout <<"net node\n";
    else
    {
        cout <<"klient " <<arr[head]<< "  ubit\n";
        head = (head % MAX) + 1;
        n--;
    }
}
 
int main()
{
    for(int i = 0; i < MAX ; i++)
        arr[i]=0;
 
    int k; // клиент
    cout << "Skolko klientov: "; cin >> n;
 
    for (int i = 1; i <= n; i++)
       cin >> arr[i];
   
    head = 1;
    tail = n;
 
    view();
 
    
    do
    {
        cout << " \ninsert[1] or delete[2]";
        cin >> k;
        cout << endl;
        if (k != 1 ) dequeue();//убиваем клиента
        else enqueu();
        view();
    }
    while (n != 0);
 
    //system("pause");
    return 0;
}
выводится содержание массива - физическое "состояние", ниже логическое, то есть сама очередь.
после ввода кол-ва клиентов нужно также вбить их номера.
 
Текущее время: 21:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru