Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
S9
Волшебник
653 / 256 / 88
Регистрация: 18.12.2010
Сообщений: 544
1

Задача на очередь (вывод сообщения, что очередь пуста)

16.12.2012, 16:36. Просмотров 2195. Ответов 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
#include <iostream>
#include <fstream>
using namespace std;
 
template <class Item>
class tQueue
{
    struct elem
    {
        Item inf;
        elem *next;
        elem(Item x) : inf(x), next(0) {}
    };
 
    elem *head, *tail;
public:
    tQueue() : head(0), tail(0) {}
    bool empty() {return head == 0;}
    Item get()
    {
        if (empty())
            return 0;
        elem *r = head;
        Item i = r->inf;
        head = r->next;
        delete r;
        return i;
    }
    void put(Item data)
    {
        elem *t = tail;
        tail = new elem(data);
        if (!head)
            head = tail;
        else
            t->next = tail;
    }
};
 
int main()
{
    ifstream in("input.txt");
    ofstream out("output.txt");
 
    tQueue <int> t;       //организуем целочисленную очередь t.
    int next;
 
    in >> next;            //вводим элемент.
 
    while (in.peek() != EOF)         //запускаем проверку:
    {
        if (next > 0)                               //если элемент меньше нуля, то
            t.put(next);                              //помещаем его в очередь.
        else
            out << next << " ";          //иначе выводим сразу.
        in >> next;                            // и вводим следующий элемент.
 
    }
 
    while (!t.empty())                    //выводим очередь.
        out<< t.get() << " ";
 
 
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2012, 16:36
Ответы с готовыми решениями:

Сформировать односвязную очередь из элементов, которые входят в очередь Q1, но не входят в очередь Q2
Составить программу обработки динамической структуры данных: сформировать односвязную очередь Q из...

Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.)
Помогите пожалуйста написать очередь. Есть Температура double и ее тип int ну и нужно сделать...

Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете
Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете. В каждый момент...

Возможно ли смоделировать очередь, где условие входа в очередь задаётся логическим выражением?
Доброго всем дня! Моделирую Lean/Kanban, есть такое требование: пользователь должен иметь...

3
41 / 2 / 0
Регистрация: 25.04.2011
Сообщений: 17
16.12.2012, 16:39 2
Если я правильно понял что вы хотите, то:
C++
1
2
    if (t.empty())
        out<< "Очередь пуста"  << " ";
1
S9
Волшебник
653 / 256 / 88
Регистрация: 18.12.2010
Сообщений: 544
16.12.2012, 17:19  [ТС] 3
А куда этот код вставить?
просто мне надо вставить его в шаблон

P.S. Если не сложно, то добавьте ваш код в мой код и выложите тут
0
56 / 17 / 1
Регистрация: 14.05.2012
Сообщений: 134
16.12.2012, 17:42 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Item get()
    {
        if (empty())
        {
            cout << "Очередь пуста";
            return 0;
     }
        elem *r = head;
        Item i = r->inf;
        head = r->next;
        delete r;
        return i;
    }
Вроде бы это то что вы хотели...Если пытаемся взять из пустой очереди - то нам говорится "Очередь пуста"
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2012, 17:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Очередь обработчиков сообщения
Привет всем. Как в глобальном хуке на WM_MouseWheel узнать, есть ли еще обработчики этого...

Дана очередь с вещественными числами, упорядоченными по убыванию. Добавить в очередь среднее арифметическое элементов
Дана очередь с вещественными числами, упорядоченными по убыванию. Добавить в очередь среднее...

Как переделать очередь основанную на массиве в циклическую очередь
Как переделать очередь основанную на массиве в циклическую очередь? Тут кое-какие попытки. Беда с...

Сформировать очередь, содержащую целые числа. Построить новую очередь, состоящую из элементов первоначальной очереди Q,
Сформировать очередь, содержащую целые числа. Построить новую очередь, состоящую из элементов...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.