//---------------------------------------------------------------------------
#include <stdlib.h>
#include <iostream.h>
#include <cstring.h>
#include "StackData.h"
#ifndef stackH
#define stackH
//----------------------------------------------------------------------------//
//Node klasse.
template <class item>
class node
{
public:
    item variabel;
    node<item>* next;
};
//----------------------------------------------------------------------------//
template <class item>
class stack
{
public:
  //Konstruktører
    stack();
    //destructor
    ~stack();
    //copy konstruktør
    stack(const stack& stack);

    //Funktionen overfører objektet ("var") til stacken.
    bool push(const item var);

	//Funktionen returnere det top noden på stacken.
    item pop();

    void clear();
    void operator =(const stack<item>& stack);
    void kopier(const stack<item>& stack);

  //access funktioner
    unsigned int antal() { return count; }
    bool tom() { return(count == 0); }

private:
    node<item>* kopier_element(node<item>* cursor);
    node<item>* top_ptr;
    node<item>* temp_ptr;
    unsigned int count;
};
#include "stack.tlp"
#endif

