.本程序自定义了栈类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= =-1void push(T e);//进栈函数,未实现T pop();//出栈函数,未实现bool IsEmpty()//判断栈是否为空{if(top<0)return 1;elsereturn 0;}};//编程任务:实现push( )函数、pop()函数void main(){//编程任务:定义处理char类型元素的栈charStack,将字符’A’,’B’,…,’J’依次加入栈//charStack后,再依次出栈,直到栈为空。}
时间: 2024-01-05 16:03:27 浏览: 101
下面是cMyStack类模板的实现,包括push()和pop()函数的实现:
```cpp
#include <iostream>
using namespace std;
const int SIZE = 10;
template<class T>
class cMyStack {
private:
T stk[SIZE];
int top;
public:
cMyStack() {
top = -1;
}
void push(T e) {
if (top == SIZE - 1) {
cout << "Stack is full!" << endl;
return;
}
top++;
stk[top] = e;
}
T pop() {
if (top < 0) {
cout << "Stack is empty!" << endl;
return T();
}
T e = stk[top];
top--;
return e;
}
bool IsEmpty() {
if (top < 0) return true;
else return false;
}
};
int main() {
cMyStack<char> charStack;
char c = 'A';
for (int i = 0; i < 10; i++) {
charStack.push(c);
c++;
}
while (!charStack.IsEmpty()) {
cout << charStack.pop() << " ";
}
cout << endl;
return 0;
}
```
在主函数中,我们定义了一个处理char类型元素的栈charStack,将字符'A','B',…,'J'依次加入栈,然后再依次出栈,直到栈为空。
阅读全文