#pragma
oncetypedef 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 |
1993

被折叠的 条评论
为什么被折叠?



