用c语言编写一个栈程序
时间: 2023-12-20 11:48:40 浏览: 38
以下是用C语言编写的一个栈程序,包括基本的入栈、出栈、判断栈空和栈满等操作:
```c
#include <stdio.h>
#define MAX_SIZE 10
int stack[MAX_SIZE];
int top = -1;
void push(int element) {
if (top >= MAX_SIZE - 1) {
printf("Stack Overflow\n");
} else {
stack[++top] = element;
printf("%d pushed to stack\n", element);
}
}
int pop() {
if (top < 0) {
printf("Stack Underflow\n");
return -1;
} else {
return stack[top--];
}
}
int isEmpty() {
return top < 0;
}
int isFull() {
return top >= MAX_SIZE - 1;
}
int main() {
push(1);
push(2);
push(3);
push(4);
push(5);
push(6);
push(7);
push(8);
push(9);
push(10);
push(11); // stack overflow
printf("pop: %d\n", pop());
printf("pop: %d\n", pop());
printf("pop: %d\n", pop());
printf("pop: %d\n", pop());
printf("pop: %d\n", pop());
printf("pop: %d\n", pop());
printf("pop: %d\n", pop());
printf("pop: %d\n", pop());
printf("pop: %d\n", pop());
printf("pop: %d\n", pop());
printf("pop: %d\n", pop()); // stack underflow
return 0;
}
```
在这个程序中,使用了一个数组 `stack` 来模拟栈的结构,`top` 变量表示当前栈顶的位置。`push` 函数用于将元素入栈,`pop` 函数用于将元素出栈并返回该元素的值。`isEmpty` 和 `isFull` 函数用于判断栈是否为空或已满。在 `main` 函数中,分别进行了入栈和出栈操作,并测试了栈空和栈满的情况。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)