Форум программистов, компьютерный форум 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? Просто я слышал, что можно писать на си++ приложения для телефона, это правда? подробнее

Показать сообщение отдельно
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
06.09.2010, 19:19  [ТС]     Очередь
Новое задание все с той же очередью, я пару часов просидел над ним и никак не могу одну трудность
преодолеть.Помогите плиз:

Внести в класс изменения, чтобы можно было создавать очередь с произовольным количеством элементов.

Меня на этом форуме хорошие люди научили этому, только вот в той же Enqueue() производится
деление по модулю на размер массива/очереди - tail = (tail+1)%Size и у меня не получается этот Size
вписать в функцию.
Создаю очередь q1 вместимостью 10 , помещаю туда 20 элементов и извлекаю опять 20.
Вобщем переполнение и опустошение очереди не контролируется .

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
#include <iostream>
using namespace std;
 
class Queue
{
    int head; int tail; int count; 
    int* q;
 
public:
    int Size;
    Queue(int Size) : head(0), tail(0), count(0)
    {
        q = new int[Size];
    }
    int Enqueue(int var);
    int Dequeue();
};
 
int Queue::Dequeue()
{
    if(head == tail )
        return 0;
    int temp = q[head];
    head = (head+1)%Size;
    count--;
    return temp;
}
 
int Queue::Enqueue(int var)
{
    if(tail == 0 && count == Size)
return 0;
    q[tail] = var;
    tail = (tail+1)%Size;
    count++;
}
 
int main()
{
Queue q1(10);
Queue q2(5);
Queue q3(20);
 
for(int i = 0;i < 20;i++)
q1.Enqueue(1);
 
for(int i = 0;i < 20;i++)
cout << q1.Dequeue() << " ";
 
cout << endl;
 
    system("pause");
}
 
Текущее время: 05:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru