Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2014, 19:42   #41
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 100
#define DataType int
#define STORAGE struct Storage

struct Storage
{
    int first, last;
    DataType items[SIZE];
};

void
Init(STORAGE *p)
{
    p->first = p->last = 0;
}

int
Top(STORAGE *p, DataType *x)
{
    if (p->first == p->last)
        return 0;
    *x = p->items[p->first];
    return 1;
}

int
Pop(STORAGE *p, DataType *x)
{
    if (p->first == p->last)
        return 0;
    *x = p->items[p->first];
    p->first = (p->first + 1) % SIZE;
    return 1;
}

int
Push(STORAGE *p, DataType x)
{
    if ((p->last + 1) % SIZE == p->first)
        return 0;
    p->items[p->last] = x;
    p->last = (p->last + 1) % SIZE;
    return 1;
}

int
main()
{
    STORAGE st;
    Init(&st);
    DataType i;
    for (i = 1; i < 6; ++i)
        Push(&st, i);
    while (Pop(&st, &i))
        printf("%d ", i);
    system("pause");
    return 0;
}
Это реализация очереди на кольцевом массиве.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коде программы (для индекса требуется массив или указатель). Язык Си Семижон Евгения Помощь студентам 7 20.01.2014 02:45
Ошибка в коде программы.Язык Си. East Undia Trading Помощь студентам 8 19.01.2014 21:03
Ошибка в ходе программы, требуется пояснение... kotzzz Мультимедиа в Delphi 2 14.04.2010 14:31
Язык программы KWN, lnc Общие вопросы Delphi 1 22.01.2010 22:33
как в цикле создавать массив с одним и тем же именем!?ошибка в ходе выполнения -access violation at addr sleevman Помощь студентам 2 28.10.2009 19:06