编写1个类模板堆栈,该堆栈最多能装MAXSIZE个元素。如果堆栈满了, 则输出“Stack is full”;如果堆栈空了,则输出“Stack is empty”, 并且返回NULL。 (1)在main函数中创建1个能容纳5个整数元素的堆栈。 (2)从键盘输入4个整数,压入堆栈中,再输出堆栈中所有元素。 Sample Input 1 2 3 4 Sample Output 4 3 2 1 怎么用c语言写这个代码
时间: 2024-03-09 09:44:46 浏览: 175
以下是使用 C 语言编写的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 5
template<typename T>
class Stack {
private:
T* stack;
int top;
public:
Stack() {
stack = new T[MAXSIZE];
top = -1;
}
~Stack() {
delete[] stack;
}
bool push(T data) {
if (top == MAXSIZE - 1) {
printf("Stack is full\n");
return false;
}
stack[++top] = data;
return true;
}
T pop() {
if (top == -1) {
printf("Stack is empty\n");
return NULL;
}
return stack[top--];
}
};
int main() {
Stack<int> stack;
int data;
for (int i = 0; i < 4; i++) {
scanf("%d", &data);
stack.push(data);
}
while (true) {
int data = stack.pop();
if (data == NULL) {
break;
}
printf("%d ", data);
}
printf("\n");
return 0;
}
```
在上面的代码中,我们首先定义了一个 `Stack` 类模板,该模板包含一个数组 `stack` 和一个整型变量 `top`,分别表示堆栈和栈顶元素的位置。我们使用 `push` 方法将元素压入堆栈中,使用 `pop` 方法弹出堆栈中的元素。
在 `main` 函数中,我们首先创建了一个容纳 5 个整数元素的堆栈。接下来,我们从键盘输入 4 个整数,使用 `push` 方法将它们压入堆栈中。最后,我们使用 `pop` 方法弹出堆栈中的所有元素,并输出它们。
阅读全文