类模板
#pragma once
#include <cassert>
template < typename Type, int MAXSIZE>
class stack
{
private :
Type* info;
int top_;
public :
stack ( ) {
info = new Type[ MAXSIZE] ;
top_ = 0 ;
}
~ stack ( ) {
delete [ ] info;
}
bool empty ( ) {
return ( ! top_) ;
}
int size ( ) {
return top_;
}
Type top ( ) {
assert ( top_) ;
return info[ top_ - 1 ] ;
}
void push ( Type ins) {
assert ( top_ < MAXSIZE - 1 ) ;
info[ top_++ ] = ins;
}
void pop ( ) {
assert ( top_) ;
top_-- ;
}
} ;
ACM简单实现
const int MAXSIZE = 10 ;
int info[ MAXSIZE + 1 ] , top = 0 ;
inline void push ( int ins) {
info[ top++ ] = ins;
}
inline void pop ( ) { top-- ; }
STL实现
#include <iostream>
#include <stack>
using namespace std;
int main ( )
{
stack< int > arr;
arr. push ( 1 ) ;
arr. push ( 2 ) ;
cout << arr. top ( ) << endl;
cout << arr. size ( ) << endl;
cout << arr. empty ( ) << endl;
arr. pop ( ) ;
return 0 ;
}