可以用c++写一个栈吗包含基本操作
时间: 2024-05-06 16:20:23 浏览: 34
可以。以下是一个简单的基于数组的栈的实现,包含了基本的操作:
```c
#include <stdio.h>
#define MAX_STACK_SIZE 100
int stack[MAX_STACK_SIZE];
int top = -1;
void push(int value) {
if (top >= MAX_STACK_SIZE - 1) {
printf("Error: Stack overflow\n");
return;
}
stack[++top] = value;
}
int pop() {
if (top < 0) {
printf("Error: Stack underflow\n");
return -1;
}
return stack[top--];
}
int peek() {
if (top < 0) {
printf("Error: Stack underflow\n");
return -1;
}
return stack[top];
}
int is_empty() {
return top < 0;
}
int is_full() {
return top >= MAX_STACK_SIZE - 1;
}
int main() {
push(1);
push(2);
push(3);
printf("%d\n", pop()); // 3
printf("%d\n", peek()); // 2
printf("%d\n", pop()); // 2
printf("%d\n", is_empty()); // 0 (false)
printf("%d\n", is_full()); // 0 (false)
return 0;
}
```
阅读全文