链式栈基本操作的 C++代码
链式栈
链式栈 LStack 的类定义和实现
template< class T >
class LStack{
private :
SLNode <T> * top ; // 栈顶指针
public :
LStack ( ) { top = NULL ; } // 构造函数
~LStack ( ) { clear ( ) ; } // 析构函数
// 清空栈
void clear ( ) {
SLNode <T> *temp ;
while ( ! IsEmpty ( ) ){ temp = top→next ; delete top ; top = temp ; }
}
// 向栈顶压入一个元素
bool Push ( const T& item ) { top = new SLNode <T> ( item, top ) ; return true ; }
// 从栈顶弹出一个元素
bool Pop ( T & item ){
if ( IsEmpty ( ) ) { cout<<“Poping from an empty stack!”<<endl ; return false ; }
item = top→data ;
SLNode <T> * temp = top ;
top = top→next ;
delete temp ; return true ;
}
// 读取栈顶元素
bool Peek ( T & item ) const {
if ( IsEmpty ( ) ) { cout<<“Peeking from an empty stack!”<<endl ; return false ; }
item = top→data ; return true ;
}
int IsEmpty ( void ) const { return top = = NULL ; } // 检测栈是否为空
} ;