NAME

ACE_Unbounded_Stack - Implement a generic LIFO abstract data type.

SYNOPSIS

#include <ace/Containers.h>

template<class T> class ACE_Unbounded_Stack { public: friend class ACE_Unbounded_Stack_Iterator<T>; typedef ACE_Unbounded_Stack_Iterator<T> ITERATOR; ACE_Unbounded_Stack (ACE_Allocator *alloc = 0); ACE_Unbounded_Stack (const ACE_Unbounded_Stack<T> &s); void operator= (const ACE_Unbounded_Stack<T> &s); ~ACE_Unbounded_Stack (void); int push (const T &new_item); int pop (T &item); int top (T &item) const; int is_empty (void) const; int is_full (void) const; int insert (const T &new_item); int remove (const T &item); int find (const T &item) const; size_t size (void) const; 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_Node<T> *head_; size_t cur_size_; ACE_Allocator *allocator_; };

DESCRIPTION

This implementation of an unbounded Stack uses a linked list.

Initialization, assignemnt, and termination methods.

ACE_Unbounded_Stack (ACE_Allocator *alloc = 0);

ACE_Unbounded_Stack (const ACE_Unbounded_Stack<T> &s);

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

~ACE_Unbounded_Stack (void);

Classic Stack operations.

int push (const T &new_item);

int pop (T &item);

int top (T &item) const;

Check boundary conditions.

int is_empty (void) const;

int is_full (void) const;

Auxiliary methods (not strictly part of the Stack ADT).

int insert (const T &new_item);

int remove (const T &item);

int find (const T &item) const;

size_t size (void) const;

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

AUTHOR

Doug Schmidt

LIBRARY

ace