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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2010, 10:03   #1
svetikzo
Новичок
Джуниор
 
Регистрация: 22.01.2010
Сообщений: 3
Вопрос Очередь Си

Реализовать абстрактный тип "очередь с

приоритетами" (priority queue) с помощью

алгоритма бинарной кучи ("binary heap").

Реализовать операции:
-создать очередь
-добавить элемент в очередь
-удалить элемент из очереди
-уничтожить очередь

Для создания и манипулирования со структурами

потребуются функции динамического выделения

памяти malloc(3), free(3), realloc(3).

Вот "скелет" программы:

Код:


/*Priority Queue.
*/

#ifndef _PRIOQ_H
#define _PRIOQ_H

typedef int (*prioq_compare_t)(struct prioq_head *a, struct prioq_head *b);

struct prioq;

struct prioq_head {
int index;
};

/* Create new priority queue. */
struct prioq *prioq_new(prioq_compare_t compare);

/* Free priority queue and release it's resources. */
void prioq_free(struct prioq **queue);

/* Put head into priority queue. */
int prioq_put(struct prioq *queue, struct prioq_head *hp);

/* Peek head from queue. */
struct prioq_head *prioq_peek(struct prioq *queue);

/* Extract head from queue. */
struct prioq_head *prioq_get(struct prioq *queue);

/* Remove head from queue. */
void prioq_remove(struct prioq *queue, struct prioq_head *hp);

#endif
svetikzo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очередь C++ svetikzo Помощь студентам 2 23.01.2010 09:53
Очередь skiffter Помощь студентам 2 03.12.2009 17:39
Очередь Юлькин Общие вопросы C/C++ 4 30.05.2009 16:00
очередь odi_noki Общие вопросы Delphi 3 24.10.2008 12:09