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

Реализовать АТД Очередь с помощью массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление динамической памяти http://www.cyberforum.ru/cpp-beginners/thread14767.html
В книгах по С++ я читал про утечку памяти. Я решил создать программу, в которой будет выделаться 1 Гб памяти и не удаляться. Будучи запущенной много раз, она так и не зависла. Для большей уверенности...
C++ Какую и как использовать функцию, чтобы float сделать int? Какую и как использовать функцию, чтобы float сделать int? http://www.cyberforum.ru/cpp-beginners/thread14765.html
Проблемы работы с графикой (graphics.h) после апгрейда компа.. :( C++
Короче курсовая на носу. Писал заставку на тему баскетбол, ну типа там нарисовал площадку, мячик, и мячик прыгает с корзины в корзину... Все было прикольтно, пока не сделал абгрейд... Работаю в Turbo...
C++ Помогите решить две простые задачи(перевод из десятичной с. с в двоичную и полное решение квадратного уравнения)
5.6Перевод из 10-й системы счисления в 2-ю 5.7Решение квадратного уравнения полное Добавлено через 2 минуты 14 секунд /************************************** Перевод из десятичной системы...
C++ Определить, какое из чисел встречается в массиве чаще всего http://www.cyberforum.ru/cpp-beginners/thread14750.html
8. Элементы массива расположить в обратном порядке, не используя дополнительный массив. Написать программу, в которой исходный массив заполнить случайным образом элементами в пределах от 101 до 200....
C++ Динамический массив в С++: как поменять длину массива по ходу выполнения программы? Есть такая проблема: есть файл, в котором построчно записаны числа float (1 число - 1 строка). Количество чисел неизвестно. Как сделать так, т.е. какие операции надо объявить, чтоб программа... подробнее

Показать сообщение отдельно
Daria
Сообщений: n/a

Реализовать АТД Очередь с помощью массива - C++

28.10.2008, 13:55. Просмотров 2284. Ответов 0
Метки (Все метки)

Всем привет!
у меня есть некоторые зарисовки, но никак не могу привести программу к концу.
Задание:
Реализовать АТД Очередь с помощью массива;
Используя эту реализацию, написать функцию,
которая за один проход по заданному целочисленному массиву
выводит на печать его элементы в следующем порядке: сначала все четные, потом – нечетные.
кусочек программы который у меня есть:
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
#include <cstdlib>
#include <cstdio>
#include <iostream.h>
#include <windows.h>
 
 
 
template <class X>
class queue
{
 
    X *data;
    int size;
    int first;
    int free;
    
 
public:
    queue (int sz=100)
    {
 
        size=sz;
        data=new X [size];
        free=0;
        first=free-0;
    }
    ~queue () {     delete [] data; }
    bool empty()
    {
        
        return first==free;
    }
    int & front()
    {
        return data [first];
    }
    void equeue (X x)
    { 
        data [free]=x;
        free++;
        if(free==size)
            free=0;
    }
    void dequeue()
    {
        first++;
        if (first==size)
            first=0;
    }
    //X qretrieve();
};
 
 
void printq  ( queue <int> & Q)
{
        while (!Q.empty () )
        {   
            cout << Q.front ();
            Q.dequeue ();
        }
        cout << endl;
}
void split ()
{
        queue <int> Q,R;
        int x;
        cin >> x;
        while ( x!=0 )
        {
            if ( x>0 && x%2==1 )
                Q.equeue (x);
            else if (x>0 && x%2==0)
                R.equeue (x);
            else if (x==-1)
                printq (Q);
            else if (x==-2)
                printq(R);
            else cout<<"invalid comand";
            cin >> x;
        }
}
 
int main(int argc, char* argv[])
{
    printf("Hello World!\n");
 
    //cout<<"Vvedyte spisok";
 
    queue<int>  a(5), b(5);
 
    a.equeue(5);
    a.equeue(2);
    b.equeue(1);
    b.equeue(4);
 
     
     
    printq(a);
     printq(b);
     printq(a);
     printq(b);
        
    
    
    return 0;
}
Помогите, пожалуйста!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru