Startpunkten
This commit is contained in:
118
Stack_And_Queue/stack.cpp
Normal file
118
Stack_And_Queue/stack.cpp
Normal file
@@ -0,0 +1,118 @@
|
||||
//#####################################################
|
||||
// STACK.CPP
|
||||
//=====================================================
|
||||
|
||||
template <class T>
|
||||
class stackClass
|
||||
{
|
||||
public:
|
||||
stackClass();
|
||||
~stackClass();
|
||||
int length();
|
||||
int duplicate(T newItem);
|
||||
void push(int position, T newItem);
|
||||
void pop();
|
||||
void top();
|
||||
void display();
|
||||
int isEmpty();
|
||||
private:
|
||||
listClass<TWindow>minLista;
|
||||
typedef struct stackNode* ptrType;
|
||||
ptrType head;
|
||||
int size;
|
||||
};
|
||||
//#####################################################
|
||||
// CONSTRUCTOR
|
||||
// SÄTTER STACKSTORLEKEN TILL NOLL OCH HEAD TILL NULL
|
||||
// pre: TRUE
|
||||
// post: en stack har skapats
|
||||
//=====================================================
|
||||
template <class T>
|
||||
stackClass<T>::stackClass():size(0), head(NULL)
|
||||
{
|
||||
}
|
||||
//#####################################################
|
||||
// DESTRUCTOR
|
||||
// FÖRSTÖR STACKEN, ANROPAS AUTOMATISKT VID AVSLUT
|
||||
// pre: TRUE
|
||||
// post: stacken har raderats
|
||||
//=====================================================
|
||||
template <class T>
|
||||
stackClass<T>::~stackClass()
|
||||
{
|
||||
}
|
||||
//#####################################################
|
||||
// RETURNERAR ANTALET ELEMENT I STACKEN
|
||||
// pre: TRUE
|
||||
// post: antalet element i stacken är returnerade
|
||||
//=====================================================
|
||||
template <class T>
|
||||
int stackClass<T>::length()
|
||||
{
|
||||
return (minLista.listLength());
|
||||
}
|
||||
//#####################################################
|
||||
// KOLLAR OM ETT ELEMENT FINNS
|
||||
// pre: att det finns en stack
|
||||
// post: TRUE om elementet redan finns
|
||||
// post: FALSE om elementet inte redan finns
|
||||
//=====================================================
|
||||
template <class T>
|
||||
int stackClass<T>::duplicate(T newItem)
|
||||
{
|
||||
return(minLista.newDuplicate(newItem));
|
||||
}
|
||||
//#####################################################
|
||||
// LÄGGER TILL ETT NYTT ELEMENT I STACKEN
|
||||
// pre: minne fanns för att skapa fönstret
|
||||
// pre: att maximalt antal element inte finns
|
||||
// pre: att elementet inte redan finns
|
||||
// post: stacken har ett nytt element
|
||||
//=====================================================
|
||||
template <class T>
|
||||
void stackClass<T>::push(int position, T newItem)
|
||||
{
|
||||
minLista.listInsert(position, newItem);
|
||||
}
|
||||
//#####################################################
|
||||
// TAR BORT ELEMENT I STACKEN
|
||||
// pre: att det finns en stack
|
||||
// post: elementet har tagits bort
|
||||
//=====================================================
|
||||
template <class T>
|
||||
void stackClass<T>::pop()
|
||||
{
|
||||
minLista.listDel();
|
||||
}
|
||||
//#####################################################
|
||||
// SKRIVER UT ÖVERSTA ELEMENTET
|
||||
// pre: att det finns en stack
|
||||
// post: elementet har skrivits ut
|
||||
//=====================================================
|
||||
template <class T>
|
||||
void stackClass<T>::top()
|
||||
{
|
||||
TWindow ruta;
|
||||
ruta=minLista.retrive(FORST);
|
||||
cout << ruta;
|
||||
ruta.move(moveX,moveY);
|
||||
}
|
||||
//#####################################################
|
||||
// SKRIVER UT STACKEN PÅ SKÄRMEN
|
||||
// pre: att det finns en stack
|
||||
// post: stacken har skrivits ut
|
||||
//=====================================================
|
||||
template <class T>
|
||||
void stackClass<T>::display()
|
||||
{
|
||||
minLista.listDisplay();
|
||||
}
|
||||
//#####################################################
|
||||
// KOLLAR OM STACKEN ÄR TOM
|
||||
// pre: TRUE
|
||||
// post: TRUE om stacken är tom
|
||||
// post: FALSE om stacken inte är tom
|
||||
//=====================================================
|
||||
template <class T>
|
||||
int stackClass<T>::isEmpty()
|
||||
{
|
||||
Reference in New Issue
Block a user