本程序自定义了栈类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 15:04:28 浏览: 82
c++ 定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈.pdf
请参考下方代码实现:
```c++
#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;
}
};
template<class T>
void cMyStack<T>::push(T e){
if(top == SIZE-1){
cout << "Stack is full." << endl;
return;
}
stk[++top] = e;
}
template<class T>
T cMyStack<T>::pop(){
if(top < 0){
cout << "Stack is empty." << endl;
return T();
}
return stk[top--];
}
int main() {
//定义处理char类型元素的栈charStack
cMyStack<char> charStack;
//将字符’A’,’B’,…,’J’依次加入栈charStack
for(char i='A'; i<='J'; i++){
charStack.push(i);
}
//依次出栈,直到栈为空
while(!charStack.IsEmpty()){
cout << charStack.pop() << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
J I H G F E D C B A
```
阅读全文