写出c++用静态存储实现栈的代码
时间: 2023-04-05 12:02:28 浏览: 59
下面是使用静态存储实现栈的 C 代码:
#define MAX_SIZE 100
int stack[MAX_SIZE];
int top = -1;
void push(int value) {
if (top == MAX_SIZE - 1) {
printf("Stack overflow\n");
return;
}
stack[++top] = value;
}
int pop() {
if (top == -1) {
printf("Stack underflow\n");
return -1;
}
return stack[top--];
}
int peek() {
if (top == -1) {
printf("Stack is empty\n");
return -1;
}
return stack[top];
}
int is_empty() {
return top == -1;
}
int is_full() {
return top == MAX_SIZE - 1;
}
相关问题
用c++用静态存储结构实现栈
可以使用数组来实现静态存储结构的栈。定义一个数组作为栈的存储空间,再定义一个指针变量来指示栈顶元素的位置。每次入栈时,将元素放入数组中指针所指的位置,并将指针向上移动一位;每次出栈时,将指针向下移动一位,并返回指针所指的元素。需要注意的是,栈满时不能再进行入栈操作,栈空时不能再进行出栈操作。
写出c++实现栈的代码
好的,以下是 C 语言实现栈的代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int top;
} Stack;
void init(Stack *s) {
s->top = -1;
}
int is_empty(Stack *s) {
return s->top == -1;
}
int is_full(Stack *s) {
return s->top == MAX_SIZE - 1;
}
void push(Stack *s, int x) {
if (is_full(s)) {
printf("Stack is full!\n");
exit(1);
}
s->data[++s->top] = x;
}
int pop(Stack *s) {
if (is_empty(s)) {
printf("Stack is empty!\n");
exit(1);
}
return s->data[s->top--];
}
int main() {
Stack s;
init(&s);
push(&s, 1);
push(&s, 2);
push(&s, 3);
printf("%d\n", pop(&s));
printf("%d\n", pop(&s));
printf("%d\n", pop(&s));
return 0;
}