|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.01.2010, 10:03 | #1 |
Новичок
Джуниор
Регистрация: 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 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Очередь 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 |