本程序自定义了栈类cMyStack的模板,请完成进栈push( )、出栈pop()的实现和主函数main()中要求实现的部分。 #include<iostream> using namespace std; const int SIZE=10; //栈的大小 template<class T> //类模板定义 class cMyStack { private: T stk[SIZE]; //用一维数组作为栈的存储空间 int top; //表示栈顶 public: cMyStack(){ top=-1; } //构造函数,空栈则top= =-1 void push(T e); //进栈函数,未实现 T pop(); //出栈函数,未实现 bool IsEmpty() //判断栈是否为空 { if(top<0) return 1; else return 0; } }; //编程任务:实现push( )函数、pop()函数 void main() { //编程任务:定义处理char类型元素的栈charStack,将字符’A’,’B’,…,’J’依次加入栈 //charStack后,再依次出栈,直到栈为空。 }
时间: 2024-01-05 09:04:06 浏览: 23
请看下面的代码,已经实现了进栈和出栈的功能,并在主函数中完成了对char类型元素的栈charStack的定义,以及将字符'A','B',...'J'依次加入栈charStack,并依次出栈,直到栈为空。
```
#include<iostream>
using namespace std;
const int SIZE=10; //栈的大小
template<class T> //类模板定义
class cMyStack {
private:
T stk[SIZE]; //用一维数组作为栈的存储空间
int top; //表示栈顶
public:
cMyStack(){
top=-1;
} //构造函数,空栈则top= =-1
void push(T e){ //进栈函数,已实现
if(top==SIZE-1){
cout<<"Stack full!"<<endl;
return;
}
top++;
stk[top]=e;
}
T pop(){ //出栈函数,已实现
if(top<0){
cout<<"Stack empty!"<<endl;
return 0;
}
T e=stk[top];
top--;
return e;
}
bool IsEmpty(){ //判断栈是否为空
if(top<0) return 1;
else return 0;
}
};
int main() {
//定义处理char类型元素的栈charStack
cMyStack<char> charStack;
//将字符'A','B',...'J'依次加入栈charStack
for(char c='A'; c<='J'; c++){
charStack.push(c);
}
//依次出栈,直到栈为空
while(!charStack.IsEmpty()){
char c=charStack.pop();
cout<<c<<" ";
}
return 0;
}
```