用c语言输出顺序栈的出栈序列
时间: 2024-10-08 14:15:43 浏览: 73
数据结构c语言
在C语言中,顺序栈(也称为数组栈)通常是一个动态数组实现的结构,其出栈序列意味着按照元素添加的相反顺序依次取出元素。以下是基本步骤:
1. **初始化**:首先,你需要定义一个大小为`MAX_SIZE`的数组作为栈,并设置一个指向栈顶的指针`top = -1`表示空栈。
```c
#define MAX_SIZE 10
int stack[MAX_SIZE]; // 定义栈数组
int top = -1; // 初始化栈顶指针
```
2. **入栈(push)**:当有新元素需要入栈时,会增加栈顶指针并存储元素。
```c
void push(int item) {
if (top < MAX_SIZE - 1) { // 检查是否栈满
top++;
stack[top] = item; // 入栈
} else {
printf("Stack overflow!\n");
}
}
```
3. **出栈(pop)**:取栈顶元素,然后将栈顶指针减一。如果栈为空,则返回错误信息。
```c
int pop() {
if (top >= 0) {
int item = stack[top]; // 获取栈顶元素
top--;
return item; // 返回并删除栈顶元素
} else {
printf("Stack underflow!\n");
return -1; // 栈空错误
}
}
```
4. **遍历(打印)**:为了获取出栈序列,你可以通过循环从栈顶开始逐个取出并打印元素,直到栈为空。
```c
void print_sequence() {
while (top != -1) {
printf("%d ", stack[top]);
top--;
}
printf("\n");
}
```
5. **完整示例**:
```c
#include <stdio.h>
// ... (上面的函数定义)
int main() {
push(1);
push(2);
push(3);
push(4); // 示例数据
print_sequence(); // 输出顺序栈的出栈序列
return 0;
}
```
当你运行这个程序时,它会按顺序输出`4 3 2 1`。
阅读全文