120 lines
3.4 KiB
C++
120 lines
3.4 KiB
C++
//#####################################################
|
|
// QUEUE.CPP
|
|
//=====================================================
|
|
|
|
template <class T>
|
|
class queueClass
|
|
{
|
|
public:
|
|
queueClass();
|
|
~queueClass();
|
|
int length();
|
|
int duplicate(T newItem);
|
|
void ins(int position, T newItem);
|
|
void del();
|
|
int isEmpty();
|
|
void getFront();
|
|
void display();
|
|
private:
|
|
listClass<TWindow>minLista;
|
|
typedef struct queueNode* ptrType;
|
|
ptrType head;
|
|
int size;
|
|
};
|
|
|
|
//#####################################################
|
|
// CONSTRUCTOR
|
|
// SÄTTER KÖSTORLEKEN TILL NOLL & HEAD TILL NULL
|
|
// pre: TRUE
|
|
// post: en kö har skapats
|
|
//=====================================================
|
|
template <class T>
|
|
queueClass<T>::queueClass():size(0), head(NULL)
|
|
{
|
|
}
|
|
//#####################################################
|
|
// DESTRUCTOR
|
|
// FÖRSTÖR KÖN, ANROPAS AUTOMATISKT VID AVSLUT
|
|
// pre: att det finns en kö
|
|
// post: kön har raderats
|
|
//=====================================================
|
|
template <class T>
|
|
queueClass<T>::~queueClass()
|
|
{
|
|
}
|
|
//#####################################################
|
|
// RETURNERAR ANTALET ELEMENT I KÖN
|
|
// pre: TRUE
|
|
// post: antalet element i kön är returnerade
|
|
//=====================================================
|
|
template <class T>
|
|
int queueClass<T>::length()
|
|
{
|
|
return (minLista.listLength());
|
|
}
|
|
//#####################################################
|
|
// KOLLAR OM ETT ELEMENT FINNS
|
|
// pre: att det finns en kö
|
|
// post: TRUE om elementet redan finns
|
|
// post: FALSE om elementet inte redan finns
|
|
//=====================================================
|
|
template <class T>
|
|
int queueClass<T>::duplicate(T newItem)
|
|
{
|
|
return (minLista.newDuplicate(newItem));
|
|
}
|
|
//#####################################################
|
|
// LÄGGER TILL ETT NYTT ELEMENT I KÖN
|
|
// pre: minne fanns för att skapa fönstret
|
|
// pre: att maximalt antal element inte finns
|
|
// pre: att köelementet inte finns
|
|
// post: kön har ett nytt element
|
|
//=====================================================
|
|
template <class T>
|
|
void queueClass<T>::ins(int position, T newItem)
|
|
{
|
|
minLista.listInsert(position, newItem);
|
|
}
|
|
//#####################################################
|
|
// TAR BORT ELEMENT I LISTAN
|
|
// pre: att det finns en kö
|
|
// post: översta elementet har tagits bort
|
|
//=====================================================
|
|
template <class T>
|
|
void queueClass<T>::del()
|
|
{
|
|
minLista.listDel();
|
|
}
|
|
//#####################################################
|
|
// KOLLAR OM KÖN ÄR TOM
|
|
// pre: TRUE
|
|
// post: TRUE om kön är tom
|
|
// post: FALSE om kön inte är tom
|
|
//=====================================================
|
|
template <class T>
|
|
int queueClass<T>::isEmpty()
|
|
{
|
|
return (minLista.listIsEmpty());
|
|
}
|
|
//#####################################################
|
|
// SKRIVER UT ÖVERSTA ELEMENTET
|
|
// pre: att det finns en kö
|
|
// post: översta elementet har skrivits ut
|
|
//=====================================================
|
|
template <class T>
|
|
void queueClass<T>::getFront()
|
|
{
|
|
TWindow ruta;
|
|
ruta=minLista.retrive(FORST);
|
|
cout << ruta;
|
|
ruta.move(moveX,moveY);
|
|
}
|
|
//#####################################################
|
|
// SKRIVER UT KÖN PÅ SKÄRMEN
|
|
// pre: att det finns en kö
|
|
// post: kön har skrivits ut
|
|
//=====================================================
|
|
template <class T>
|
|
void queueClass<T>::display()
|
|
{
|
|
minLista.listDisplay();
|
|
}
|