在此堆栈顶部添加一个元素
时间: 2024-02-13 19:59:39 浏览: 65
Quiz2_Stack:实现一个堆栈
要在堆栈顶部添加一个元素,可以使用 push 操作,将新的元素插入到堆栈顶部。具体实现可以参考下面这段代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct Stack {
int data[MAXSIZE];
int top;
} Stack;
void initStack(Stack *s) {
s->top = -1;
}
int isStackEmpty(Stack *s) {
return s->top == -1;
}
int isStackFull(Stack *s) {
return s->top == MAXSIZE - 1;
}
void push(Stack *s, int x) {
if (isStackFull(s)) {
printf("Stack is full!\n");
exit(1);
}
s->data[++s->top] = x;
}
int main() {
Stack s;
initStack(&s);
push(&s, 1);
push(&s, 2);
push(&s, 3);
printf("After push: ");
while (!isStackEmpty(&s)) {
printf("%d ", s.data[s.top]);
s.top--;
}
printf("\n");
return 0;
}
```
在上面的代码中,我们定义了一个结构体 Stack,其中 data 数组用于存储堆栈元素,top 变量表示栈顶指针的位置。initStack 函数用于初始化堆栈,isStackEmpty 函数用于判断堆栈是否为空,isStackFull 函数用于判断堆栈是否已满。push 函数用于将元素压入堆栈。在主函数中,我们先将元素 1、2、3 压入堆栈,然后依次弹出堆栈元素,并打印出添加元素后的堆栈元素。
阅读全文