Files
Programutvecklingsmetodik/Stack_And_Queue/queue.cpp
2026-03-05 13:44:23 +01:00

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();
}