Форум программистов, компьютерный форум CyberForum.ru

Объединение 2-х очередей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача на структуры http://www.cyberforum.ru/cpp-beginners/thread428313.html
моя попытка решения но я в нем не уверен int main() { struct {struct{char naim; char rezh;}film; struct {char fio; char rol;}act; struct{char naimkin;char adres; struct{int date;int time;}kino; struct{int sum;}mes; }teatr; struct{char naimch; int date1; int time1;}kanal; }card; strcpy(card.film.naim,"Avatar");
C++ Кто знает как из DEVc++ транслировать в C++? Есть программа написанная в Dev, которая не работает в Visual C++. Как данную программу перевести в Си? В чем их особенности? Вот сама программа, если не трудно, то переведите в С++, ну или хотя бы подскажите как это сделать мне. буду очень признателен) #include <iostream> #include <cmath> #include <string> #include <cstring> #include <cstdio> #include <cstdlib> //#include<stdlib.h> http://www.cyberforum.ru/cpp-beginners/thread428292.html
C++ проблема с закрытием экрана
Вот код: #include <iostream> int main() { using namespace std; int carrots; cout << "how many carrots do you have?" << endl; cin >> carrots;
C++ Старик Хоттабыч, хочу, что бы результат возвращаемый функцией не стакался...
Доброго времени суток, уважаемые форумчане. У меня такая проблемка. Возвращаемый функцией результат, а это у меня определенный элемент массива при определенном условии, при использовании в цикле for/while прибавляется(стакается) с предыдущим возвращаемым результатом функции. Как, а главное почему это происходит? И как это устранить? Ниже тот самый "кот": #include <iostream> #include...
C++ Вывести на экран два максимальных элемента всех нечетных строк массива. http://www.cyberforum.ru/cpp-beginners/thread428261.html
Помогите пожалуйста, горю :( Работаю на суровом борланде 3.11 float M; int i,j, max1, max2; cout<<"\nМассив:"; for(i=0;i<4;i++) { cout<<"\n"; for(j=0;j<3;j++) {
C++ Найти номера строки не содержащей едениц в матрице Матрица K(m,m) состоит из нулей и единиц. Найти в ней номера хотя бы данной строки, не содержащих единицы, либо сообщить, что таковых нет. Матрицу ввести из файла. подробнее

Показать сообщение отдельно
kdv12
1 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 33
15.01.2012, 00:47  [ТС]     Объединение 2-х очередей
Цитата Сообщение от retmas Посмотреть сообщение
хотя счетчик элементов в очереди не помешает
можно будет добавить что то вроде
C++
1
size_t size ( ) const;
и использовать как for, так и while

Добавлено через 1 минуту


нет
C++
1
2
3
4
while(!q.empty())
{
    получаем значение q.front()
}
Огромное вам спасибо за помощь! )) Вроде бы все сделал и все работает. Вот код

файл main.cpp
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
#include <iostream>
#include <stdlib.h>
#include "queue.h"
 
using namespace std;
 
void main()
{
    Queue <int> Qu, Qu2;
    Qu.push(10);
    Qu.push(5);
    Qu.push(30);
    Qu.push(2);
 
    while(!Qu.empty())
    {
        Qu2.push(Qu.front());
    }
 
    Qu2.show();
 
    cout<<endl;
 
    Qu2.sort();
    Qu2.show();
 
    system("pause");
}
файл queue.h
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#ifndef QUEUE_H
#define QUEUE_H
 
template<class Type>
class Queue
{
    public:
        Queue() : head(0), bot(0) {}
 
        ~Queue()
        {
            while(head)
            {
                bot = head->next;
                delete head;
                head = bot;
            }
        }
 
        void pop()
        {
            if(head==0) return;
 
            Node *delPtr = head;
            cout << "Element " << head->info << " is deleted from the queue" << endl;
            head = head->next;
 
            delete delPtr;
        }
 
        void push(Type val)
        {
            Node* Tmp = new Node;
            Tmp->info = val;
 
            if(head==0) { head = bot = Tmp; return; }
            bot->next = Tmp;
            bot = Tmp;
        }
 
        Type front()
        {
            Node *delPtr = head;
            Type tmp = head->info;
            head = head->next;
            delete delPtr;
            return tmp;
        }
 
        void show() const
        {
            if (head == 0) return;
            for (Node *ptr=head; ptr!=0; ptr=ptr->next) cout << ptr->info << " ";
        }
 
        bool empty() const
        {
            return head==0;
        }
 
        void sort()
        {
            if(!head) return ;
            if(head->next==NULL) return ;
    
            Node *p2 =head;
            Node *p1 =p2->next;
            Node *p  =p1->next;
 
            while(p1)
            {
                if(head->info>head->next->info)
                {
                    p2->next=p1->next;
                    p1->next=head;  
                    head=p1;
                    p2=head;
                    p1=p2->next;
                    p=p1->next;
                    continue;
                }
                if(p1->next!=0&&p1->info>p->info)
                {
                    p1->next=p->next;
                    p->next=p1;
                    p2->next=p;
                    p2=head;
                    p1=p2->next;
                    p=p1->next;
                    continue;
                }
                if(p1->next==NULL) break;
                p2=p1;
                p1=p;
                p=p->next;
            }
        }
 
    private:
        struct Node
        {
            Node() : next(0), info(0) {}
            Node *next;
            Type info;
        };
 
        Node *head;
        Node *bot;
};
 
#endif
Может код и далеко и не идеал, но поставленную задачу он решает. Разве что может стоит подумать на оптимизацией метода сортировки.
 
Текущее время: 04:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru