На данный момент реализована алгоритмическая часть проекта на С++.
Позже планируется добавить визуализацию алгоритма, используя JavaScript + HTML + CSS.
Для тестирования правильности работы алгоритма в репозитории присутствуют 2 файла:
- ThickHeapManualTestingApp.exe - Консольная утилита для ручного тестирования при помощи ввода с клавиатуры.
- ThickHeapAutomaticTestingApp.exe - Консольная утилита для автоматического тестирования с помощью файлов (для больших входных данных).
Для автоматического тестирования в папке с утилитой необходимо разместить файл следующего формата:
В первой строке файла должно быть число N (0 <= N <= 1000000) - количество команд.
В следующих N строках должны находиться команды:
insert A
- добавить число А в кучу. (А должно быть целым числом от -10^9 до 10^9 включительно).getMin
- вывести в выходной файл минимальный элемент, находящийся в куче. (Куча не должна быть пустой!)deleteMin
- вывести в выходной файл и удалить из кучи минимальный элемент. (Куча не должна быть пустой!)size
- вывести в выходной файл количество элементов в куче.В случае корректных запросов во входном файле программа выведет необходимые данные в выходной файл. В противном случае в консоль выведется ошибка и номер строки входного файла, в котором она возникла.
В папке test находятся 3 файла с тестами для автоматического тестирования:
- test1.txt - Добавление 333333 элементов в кучу с параллельным выводом её размера. После все элементы удаляются.
- test2.txt - Чередование операций добавления, вывода размера и удаления элемента 300000 раз.
- test3.txt - Добавление 100000 случайных элементов в кучу с последующим удалением минимальных. В результате добавленные элементы должны быть выведены в отсортированном порядке.