Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
1 / 1 / 3
Регистрация: 18.11.2013
Сообщений: 91
1

Создать очередь. Добавить элемент в очередь. Удалить элемент из очереди

03.12.2014, 20:42. Показов 6287. Ответов 4
Метки нет (Все метки)

Нужно создать очередь. Добавить элемент в очередь. Удалить элемент из очереди.
Вот моё "творение".

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
int main()
{
    int och[512];   //очередь на 512 запросов
    int point = -1; //указатель на очередь
 
    int addel(int a);   //добавление запроса в очередь
    {
        int a;
        if (point<511) och[point++] = a;
        else
        {
            cout << "enough queue\n"; //очередь переполнена
            return 0;
        }
        return 1;
    }
    void delel(void);   //чтение запроса из очереди
    {
        if (point >= 0)
        {
            int max = och[0], nmax = 0; // поиск запроса с максимальным параметром
            for (int i = 1; i < point; i++)
            if (max < och[i]) max = och[i], nmax = i;
            cout << "read   " << max << endl;
            point--;            //сдвиг очереди
            for (int i = nmax; i < point; i++) och[i] = och[i + 1];
        }
    }
    void printoch(void);        //содержимое очереди
    {
        if (point >= 0)
        {
            cout << ":   ";
            for (int i = 0; i < point; i++)
                cout << och[i] << " ";
            cout << "\n";
        }
    }
    void main(void);
    {
        int op, f;
        clrscr();
        do
        {
            op = rand(2);       // 0-запись запроса, 1- чтение
            f = rand(15);       //запрос
            if (op) delel();
            else if (!addel(f)) exit(1);
            printoch();
        } while (1);
    }
    _gettch();
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2014, 20:42
Ответы с готовыми решениями:

Работа с очередью. Умейте поставить в очередь элемент, удалить элемент из очереди, пересмотреть очередь
То чувство , когда изучали web и тут нам дают задачу по с++ ... Нужна помощь !!

Как добавить элемент в очередь, используя указатель на последний элемент?
Не пойму как добавить элемент в очередь используя указатель на последний элемент. Выполняю задание...

Удалить 1 элемент и добавить новый, переписать очередь в файл
1.Создать односвязный список типа очередь. Скопировать его в другой список типа стек. Удалить 1...

Основные операции: вставить, удалить эл. из очереди, просмотреть первый эл., удалить очередь и напечатать очередь.
Динамические структуры данных, обчная очередь. Основные операции: вставить, удалить эл. из очереди,...

4
Pure Free Digital Ghost
4290 / 1741 / 334
Регистрация: 06.01.2013
Сообщений: 4,369
03.12.2014, 20:48 2
SveN_152v, а у Вас в вузе сейчас случаем не динамические структуры данных проходятся? Потому что если да, то с задачей Вы явно не справились.
0
1 / 1 / 3
Регистрация: 18.11.2013
Сообщений: 91
03.12.2014, 20:53  [ТС] 3
Цитата Сообщение от FraidZZ Посмотреть сообщение
а у Вас в вузе
Увы, но я не в вузе учусь) Я технарь экономист)
0
Pure Free Digital Ghost
4290 / 1741 / 334
Регистрация: 06.01.2013
Сообщений: 4,369
03.12.2014, 22:34 4
SveN_152v, хм. И всё же) Задание на динамические структуры?) Чую, что да.
Пока набрасываю пример, как примерно должно это выглядеть.

Добавлено через 1 час 33 минуты
Прошу прощения, что исчез, был очень вынужден.

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
#include <iostream>
 
template <class DataType>
class Queue {
    class Node {
        public:
            DataType value;
            Node * next;
            Node(DataType data) : next(0), value(data) { }
    };
 
    Node * head, * tail;
    public:
        Queue() : head(0), tail(0) { }
        ~Queue() {
            while ( tail ) {
                Node * tmp = tail;
                tail = tail->next;
                delete tmp;
            }
        }
        bool empty () { return !tail; }
        void enqueue (DataType val) {
            Node *ph = head;
            head = new Node(val);
            if (ph) ph->next = head;
            else tail = head;
        }
        DataType dequeue( ) {
            DataType val = tail->value;
            Node *pt = tail->next;
            delete tail;
            tail = pt;
            return val;
        }
};
 
int main ( ) {
    try {
        Queue<int> a;
        a.enqueue(10);
        a.enqueue(11);
        a.enqueue(12);
        a.enqueue(13);
    
        while ( !a.empty() ) std::cout << a.dequeue() << " , ";
    } catch ( int e ) { std::cout << "Error!"; }
    return 0;
}
1
1 / 1 / 3
Регистрация: 18.11.2013
Сообщений: 91
03.12.2014, 22:54  [ТС] 5
Я бы выразил большую признательность, если бы ещё немного вы прокомментировали, ибо не силён я ещё в просторах сие языка.

Цитата Сообщение от FraidZZ Посмотреть сообщение
Прошу прощения, что исчез, был очень вынужден.
Ничего страшного, ведь не от мира сего мы зависим) У каждого есть другие дела, которые требуют их решения)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2014, 22:54

Создать очередь и удалить из нее каждый второй элемент
Здравствуйте! Помогите, пожалуйста, с решением такой задачи, как создание очереди и удаления из...

Как добавить в очередь элемент Generic класса?
Не получается в очередь добавить элемент Generic класса. Подскажите, как исправить public class...

Добавить элементы в очередь, найти максимальный элемент
Нужна Ваша помощь! пожалуйста, помогите доработать программу, а то у меня совсем ничего не...

Добавить элемент со значением D в конец очереди и извлечь из очереди первый (начальный) элемент
Дано число D и указатели P1 и P2 на начало и конец очереди, содержащей не менее двух элементов. ...


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

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

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