Skip to content
forked from cherpontov/ADS-5

Реализация очереди с приоритетами на связанном списке

Notifications You must be signed in to change notification settings

brothergod1/ADS-5

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Алгоритмы и структуры данных (ADS-5)

Задание

Написать реализацию структуры данных "очередь с приоритетами" PQueue на связанном списке

Пояснение

В данной задаче необходимо написать реализацию разновидности очереди - Очередь с приоритетами, работа которой строится по следующей схеме:

Очередь обрабатывает символы, каждому из которых назначается приоритет, - целое число от 1 до 10. При поступлении в очередь элементов, они занимают места, в соответствии с приоритетом: чем он больше, тем ближе к началу очереди. При получении элемента из очереди, вперед идут элементы, чей приоритет больше.

Вставка элемента в очередь должна иметь вычислительную сложность O(n), выборка элемента из очереди, - O(1).

Программная реализация

Очередь должна строиться как связанный список, при добавлении элементов, они вставляются в нужную позицию, при извлечении, - они удаляются из головы.

Сам список может быть односвязным или двусвязным.

За основу можно взять класс LListQueue, описанный в лекции http://shtanyuk.tk/edu/nntu/ads/lections/lec10/index.html

В качестве типа данных T, используемого очередью, возьмем структуру SYM:

struct SYM
{
	char ch;
	int prior;
}

Выполнение работы

  • На основе представленного типа LListQueue разработать шаблон очереди с приоритетом TPQueue.
  • Предполагается, что тип T внутри очереди будет структурой, состоящей из двух полей, приоритет задается полем prior.
  • Поместить описание шаблона TPQueue в файл include/tpqueue.h
  • Изучить файл с тестами test/tests.cpp чтобы увидеть примеры использования шаблона очереди с приоритетами.

About

Реализация очереди с приоритетами на связанном списке

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 85.3%
  • Python 11.4%
  • CMake 1.0%
  • Shell 0.7%
  • Makefile 0.6%
  • M4 0.6%
  • C 0.4%