[ create a new paste ] login | about

Link: http://codepad.org/tMs6mChm    [ raw code | output | fork ]

C++, pasted on May 17:
#include <iostream>
#include <stdlib.h>
using namespace std;
float q[7]; // массив, на основе которого строится очередь
int qnext = 0, qindex = 0, qlength = 7; // qnext - индекс занесения
                                        // qindex - индекс извлечения
                                        // qlenght - длина очереди
// *************ПРОСТАЯ ОЧЕРЕДЬ*******************************                                       
// Занесение элемента в линейную очередь
 
void insertLinQ (float i)
{
    if (qnext + 1 == qlength) // если переполнение
    {
        cout << "Мест нет!\n";
        return;
    }
    qnext++; // смещение позиции записи
    q[qnext] = i; // ввод данных
}
// Извлечение элемента из линейной очереди
float retrieveLinQ ()
{
    if (qindex == qnext) // если индекс сохранения равен индексу извлечения
    {
        cout << "Очередь пуста!\n";
        return 0;
    }
    qindex++; // смещение позиции считывания
    return q[qindex]; // считывание
}
// ******************ЦИКЛИЧЕСКАЯ ОЧЕРЕДЬ*********************
float q2[5];
int qnext2 = 0, qindex2 = 0, qlength2 = 5;
// Занечение элемента в циклическую очередь
void insertCicQ (float j)
{
    if (qnext2 + 1 == qindex2 || (qnext2 + 1 == qlength2 && !qindex2))
    {
        cout << "Мест нет!\n";
        return;
    }
    q2[qnext2] = j; // запись
    qnext2++; // смещение позиции записи
    
    if (qnext2 == qlength2)
    qnext2 = 0; // циклический переход
}
// Извлечение элемента из циклической очереди 
float retrieveCicQ ()
{
    if (qindex2 == qlength2)
    qindex2 = 0; // циклический переход
    if (qindex2 == qnext2)
    {
        cout << "Очередь пуста!\n";
        return 0;
    }
    qindex2++; // смещение позиции считывания
    return q2[qindex2-1]; // считывание
}
int main (int argc, char* argv[])
{
    setlocale (0, "rus");
    cout << "***ЛИНЕЙНАЯ ОЧЕРЕДЬ***\n";
    insertLinQ (1); // 1
    insertLinQ (5); // 5 1 
    insertLinQ (8); // 8 5 1 
    cout << retrieveLinQ() << "\n"; // возвр. 1, в очереди 8 5 
    insertLinQ (7); // 7 8 5 
    cout << retrieveLinQ() << "\n"; // возвр. 5, в очереди 7 8 
    cout << retrieveLinQ() << "\n"; // возвр. 8, в очереди 7
    insertLinQ (11); // 11 7
    insertLinQ (10); // 10 11 7
    insertLinQ (4); // 4 10 11 7
 
    cout << "***ЦИКЛИЧЕСКАЯ ОЧЕРЕДЬ***\n";
    insertCicQ (5); // 5
    insertCicQ (7); // 7 5 
    insertCicQ (9); // 9 7 5 
    cout << retrieveCicQ() << "\n"; // возвр. 5, в очереди 9 7 
    insertCicQ (3); // 3 9 7 
    insertCicQ (11); // 11 3 9 7
    cout << retrieveCicQ() << "\n"; // возвр. 7, в очереди 11 3 9 
    insertCicQ (15); // 15 11 3 9 
    insertCicQ (4); // ПЕРЕПОЛНЕНИЕ, в очереди 15 11 3 9 
    cout << retrieveCicQ() << "\n"; // возвр. 9, в очереди 15 11 3
    cout << retrieveCicQ() << "\n"; // возвр. 3, в очереди 15 11 
    cout << retrieveCicQ() << "\n"; // возвр. 11, в очереди  15 
    cout << retrieveCicQ() << "\n"; // возвр. 15, очередь пуста
    cout << retrieveCicQ() << "\n"; // Очередь пуста!
    //system ("pause");
    return 0;
}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
***ЛИНЕЙНАЯ ОЧЕРЕДЬ***
1
5
8
Мест нет!
***ЦИКЛИЧЕСКАЯ ОЧЕРЕДЬ***
5
7
Мест нет!
9
3
11
15
Очередь пуста!
0


Create a new paste based on this one


Comments: