//  File test_heap.cpp

#include <iostream>
#include "minheap.h"

using namespace std;

const int HEAP_SIZE = 20;

int main()
{
    MinHeap heap(HEAP_SIZE);
    bool done = false;
    int value;
    char command;
    cout << "E)nqueue D)equeue P)rint D)raw H)elp Q)uit" << endl;
    while ( !done )
    {
        cin >> command;
        switch ( command )
        {
           case 'E':
           case 'e':
               cin >> value;
               if ( heap.is_full() )
                   cout << "Heap full";
               else
                   heap.enqueue(value);
               break;
           case 'D':
           case 'd':
               if ( heap.is_empty() )
                   cout << "Heap empty";
               else
                   cout << heap.dequeue();
               cout << endl;
               break;
           case 'P':
           case 'p':
               heap.print();
               break;
           case 'S':
           case 's':
               heap.draw(0, 0, ' ');
               break;
           case 'H':
           case 'h':
           case '?':
               cout << "E)nqueue D)equeue P)rint D)raw H)elp Q)uit" << endl;
               break;
           case 'Q':
           case 'q':
               done = true;
               break;
        }
    }
}
