52 lines
1.3 KiB
C
52 lines
1.3 KiB
C
|
#ifndef __STACK_H
|
||
|
#define __STACK_H
|
||
|
|
||
|
#ifndef __ARRAY_H
|
||
|
#include "array.h"
|
||
|
#endif
|
||
|
|
||
|
// @doc EXTERNAL
|
||
|
|
||
|
// @class TStack | Classe per la gestione dello stack a basso livello
|
||
|
//
|
||
|
// @base public | TObject
|
||
|
class TStack : public TObject
|
||
|
|
||
|
// @author:(INTERNAL) Alex
|
||
|
|
||
|
// @access:(INTERNAL) Private Member
|
||
|
{
|
||
|
protected:
|
||
|
// @cmember:(INTERNAL) Dati dello stack
|
||
|
TArray _data;
|
||
|
|
||
|
// @cmember:(INTERNAL) Puntatore alla cima dello stack
|
||
|
int _sp;
|
||
|
|
||
|
// @access Public Member
|
||
|
public:
|
||
|
// @cmember Ritorna il puntatore allo stack
|
||
|
int count() const
|
||
|
{ return _sp; }
|
||
|
// @cmember Aggiunge un oggetto sullo stack
|
||
|
void push(const TObject& o);
|
||
|
// @cmember Aggiunge un oggetto sullo stack
|
||
|
void push(TObject* o);
|
||
|
// @cmember Ritorna il primo oggetto sulla cima dello stack
|
||
|
TObject& pop();
|
||
|
// @cmember Ritorna l'oggetto ad una data profondita' nello stack
|
||
|
TObject& peek(int depth = 0) const;
|
||
|
// @cmember Distrugge l'intero stack
|
||
|
void destroy();
|
||
|
// @cmember Distrugge l'oggetto alla base dello stack
|
||
|
bool destroy_base();
|
||
|
// @cmember Costruttore. Chiama il costruttore di <c TArray>
|
||
|
TStack(int size = 16);
|
||
|
// @cmember Costruttore. Chiama il costruttore di <c TArray>
|
||
|
TStack(const TStack& stack);
|
||
|
// @cmember Distruttore. Chiama il distruttore di <c TArray>
|
||
|
virtual ~TStack() { }
|
||
|
};
|
||
|
|
||
|
#endif
|