Program Listing for File StackAlgorithms.h

↰ Return to documentation for file (ADS/stack/StackAlgorithms.h)

/*--------------------------------------------------------------------------*/
/*------------------------- File StackAlgorithms.h -------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/

#ifndef __ADS_StackAlgorithms
 #define __ADS_StackAlgorithms
                      /* self-identification: #endif constant */

/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/

#include "ADS/ADT.h"
#include "ADS/Contract.h"
#include "ADS/sequence/List.h"
#include "ADS/stack/SequenceStack.h"

#include <string>
#include <vector>

/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/

namespace ADS {

inline bool isPalindrome( const std::string & s );

template< Stack S >
void sortStack( S & s );

template< Stack S >
void removeGreater( S & s , const typename S::Item & k );

template< Stack S , class F >
void forEachBottomUp( S & s , F && f );

/*--------------------------------------------------------------------------*/

}  // end( namespace ADS )

/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/

#include "ADS/stack/impl/StackAlgorithms.tpp"

/*--------------------------------------------------------------------------*/

#endif  /* StackAlgorithms.h included */

/*--------------------------------------------------------------------------*/
/*----------------------- End File StackAlgorithms.h -----------------------*/
/*--------------------------------------------------------------------------*/