Форум программистов, компьютерный форум 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
05.09.2010, 23:44     Очередь
C++
1
2
3
4
5
6
7
8
9
int Queue::Enqueue(int var)
{
if(tail == 0 & count == 5)
return(0);
 
        count++;
        q[tail] = var;
        tail = (tail+1)%5;
}
Зачем возвращает int?

По правилам игры, если места в очереди нет, удаляй первый элемент, сдвигай, в макушку новое число.
Если правила упростить, пусть функция возвращает bool, пусть процесс "засовывания" прерывается. Какой смысл пытатся засунуть седьмое число если уже для шестого места нет?? А если массив размером 5 а попыток засунуть 1000000000? Будешь каждый раз пытатся засунуть пока числа не кончатся? За такой перфоманс тебя с работы уволят.)

Добавлено через 2 часа 5 минут
Вот, максимально упростил. Способ реализовать очередь через массив не сдвигая индексы к началу. Понаблюдай за поведением проги, понажимай 1 и 2 , 3 - выход. Тут уже столько сказали что добавлять в принципе нечего.
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
#include <iostream>
#include <string>
using namespace std;
 
static int *arr; 
static int head, tail, 
        n,             //  граница очереди
        nmax,       //  граница массива
    tmp;         //  число которое пихаем в массив, всегда возрасает для наглядности
 
static void view()
{
    system("CLS");
    if (n > 0)  
    {
        int pos = head;
        cout  << "\nqueue:";
        while (pos != tail)
        {
            cout << " " <<arr[pos];
            pos = (pos % nmax) + 1;
        }
        cout << " "<<arr[tail] <<endl;
        
        if (n == nmax)
            cout <<"Array забита\n";
    }
    else
        cout <<"Array пуста\n";
}
 
static void enqueue()
{
    system("CLS");
    if (n != nmax)
    {
        tmp++;
        tail = (tail % nmax) + 1; 
        arr[tail] = tmp;
        n++;
    }
}
 
static void dequeue()
{
    system("CLS");
    if (n != 0)
    {
        head = (head % nmax) + 1;
        n--;
    }
}
 
int main()
{
    setlocale(LC_ALL,"Rus");
    
    cout << "размер array: ";
        cin >> nmax;
 
    arr = new int[nmax];
    n = 0;
    head = 1;
    tail = n;
    int enter; 
    bool ok = true;
 
    view();
    
    while (ok)
    {
        cout << " \nзасунуть 1\n удалить 2\n    exit 3\n";
        cin >> enter;
        if (enter == 1)     enqueue();
        else if(enter == 2) dequeue();
        else if(enter == 3) ok = false;         
        
        view();
    }
    delete[] arr;
    return 0;
}
 
Текущее время: 02:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru