NAME

ACE_Unbounded_Stack - Implement a generic LIFO abstract data type.

SYNOPSIS


#include <ace/Stack.h>


template<class T>
class ACE_Unbounded_Stack
{
  public:
    ACE_Unbounded_Stack (void);
    ACE_Unbounded_Stack (const ACE_Unbounded_Stack<T> &s);
    void operator= (const ACE_Unbounded_Stack<T> &s);
    ~ACE_Unbounded_Stack (void);
    void push (const T &new_item);
    void pop (T &item);
    void top (T &item) const;
    int is_empty (void) const;
    int is_full (void) const;
    static void delete_free_list (void);
    void dump (void) const;
    ACE_ALLOC_HOOK_DECLARE;
  private:
    void delete_all_nodes (void);
    void copy_all_nodes (const ACE_Unbounded_Stack<T> &s);
    ACE_Stack_Node<T> *head_;
    ACE_Stack_Node<T> *last_resort_;
};

DESCRIPTION

This implementation of an unbounded Stack uses a linked list.

Initialization, assignemnt, and termination methods.

ACE_Unbounded_Stack (void);
ACE_Unbounded_Stack (const ACE_Unbounded_Stack<T> &s);
void operator= (const ACE_Unbounded_Stack<T> &s);
~ACE_Unbounded_Stack (void);

Classic Stack operations.

void push (const T &new_item);
void pop (T &item);
void top (T &item) const;

Check boundary conditions for Stack operations.

int is_empty (void) const;
int is_full (void) const;
static void delete_free_list (void);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;

AUTHOR

Doug Schmidt

LIBRARY

ace