#pragma
once typedef char DataType; const int MaxStatckSize
= 50; //栈大小 class StackDemo { private : DataType
stacklist[MaxStatckSize]; int top; //栈顶 public : //构造函数 StackDemo( void ); ~StackDemo( void ); public : //压栈出栈操作 void Push( const DataType
&item); DataType
Pop( void ); void ClearStack( void ); //访问栈顶 DataType
Peek( void ) const ; //检测椎栈 bool isEmpty( void ) const ; bool isFull( void ) const ; }; |
头文件stackDemo.h |
#include
"StackDemo.h" #include
<iostream> StackDemo::StackDemo( void ) { this ->top
= -1; } StackDemo::~StackDemo( void ) { this ->top
= -1; } void StackDemo::Push( const DataType
&item) { //栈是否已满 if (!isFull()) {
top += 1; this ->stacklist[top]
= item; } else std::cout
<< "Out
of the Stack!" <<
std::endl; } DataType
StackDemo::Pop( void ) { if (!isEmpty()) { int ebp
= top; top
-= 1; return stacklist[ebp]; } else return -1; } DataType
StackDemo::Peek( void ) const { return top; } void StackDemo::ClearStack() { for ( int i
= top;i >=0 ;i--) stacklist[i]
= 0; top
= -1; std::cout
<< "Clear
stack done!" <<
std::endl; } bool StackDemo::isFull( void ) const { return top
> MaxStatckSize? true : false ; } bool StackDemo::isEmpty( void ) const { return top
< 0 ? true : false ; } |
实现
stackDemo.cpp |
#include
<iostream> #include
"StackDemo.h" using namespace std; int main() { StackDemo
*sd = new StackDemo(); sd->Push(10); //压栈 sd->Push(20); //压栈 sd->Push(30); //压栈 cout
<< "Stack
TOP:" <<
sd->Peek() << endl; cout
<< "POP:" <<
sd->Pop() << endl; system ( "pause" ); //暂停 return 0; } |
main.cpp |