34 / 34 / 21
Регистрация: 02.02.2012
Сообщений: 181
1

Очередь (задача из Лафоре)

08.06.2014, 13:48. Показов 2067. Ответов 1
Метки нет (Все метки)

Задача 9 из Лафоре:
Надо написать класс queue, имеющий два метода: put() для помещения элемента в очередь и get() для извлечения элемента из очереди. Вам понадобятся два поля head и tail (конец и начало). Конец очереди перемещается к началу по массиву по мере того, как элементы добавляются и извлекаются из очереди. Если head или tail примут значение конца массива, то следует вернуться на начало. Таким образом вам потребуется выражение типа
C++
1
if (tail == Max - 1) tail= -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
#include <iostream>
 
using namespace std;
 
class queue
{
private:
    static const int max = 2;
    int a[max];
    int head;
    int tail;
public:
    queue()
    {
        head = 0;
        tail = 0;
    }
    void put(int x)
    {
        a[tail++] = x;
        if (tail == max-1)
            tail = -1;
    }
    int get()
    {
        if (head == max-1)
            head = 0;
        return a[head++];
    }
};
int main()
{
    queue q;
    q.put(3);
    q.put(4);
    cout << q.get() << endl;
    cout << q.get() << endl;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2014, 13:48
Ответы с готовыми решениями:

Задача из Лафоре
Для разъяснения действия наших доморощенных указателей мы смоделируем память компьютера с помощью...

Задача из Лафоре
есть задачка из Лафоре -&gt; Модифицируйте класс bMoney из упражнения 12 главы 7 «Массивы и...

Лафоре. Глава 11. Задача 2
Решал задачку из учебника - Лафоре. Глава 11. Задача 2. Вот код #include &lt;iostream&gt; #include...

Лафоре задача по классам
Задача из книги лафоре по классам №7: нужно написать программу используя классы для ввода и вывода...

1
42 / 42 / 18
Регистрация: 12.03.2013
Сообщений: 148
08.06.2014, 13:59 2
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
#include <iostream>
 
using namespace std;
 
class queue
{
private:
    static const int max = 2;
    int a[max];
    int head;
    int tail;
public:
    queue()
    {
        head = 0;
        tail = 0;
    }
    void put(int x)
    {
        a[tail++] = x;
        if (tail == max) //при max-1 не добавляло в последний элемент
            tail = -1;
    }
    int get()
    {
        return a[head++]; //сначала вывести потом проветить
        if (head == max-1)
            head = 0;
    }
};
int main()
{
    queue q;
    q.put(3);
    q.put(4);
    cout << q.get() << endl;
    cout << q.get() << endl;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2014, 13:59
Помогаю со студенческими работами здесь

Задача по книге Р. Лафоре
Пример по книге Лафоре... (Система Windows 10/64bit.) Я знаю что на форуме есть решения но я хочу...

Не компилируется задача из Лафоре
Помогите пожалуйста разбораться почему компилятор ругается: 1&gt;L.obj : error LNK2019: unresolved...

Задача 7 главы 7 из книги Р. Лафоре. Строки
Добрый день! Недавно начал изучать С++ по, наверное, уже всем поднадоевшему, учебнику Роберта...

Лафоре,задача про денежный тип
Вот задачка: Одним из недостатков C++ является отсутствие для бизнес-программ встроенного типа для...

Задача на очередь (вывод сообщения, что очередь пуста)
Доброго дня! Есть задачка на очередь, которая работает нормально, только надо добавить код, чтобы...

Правильное ли решение задачи? Лафоре. 3 глава 9 задача
Представьте, что вы собираетесь пригласить к себе шестерых гостей, но за вашим столом могут...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru