阅读量:2
在C语言中,栈是一种后进先出(LIFO)的数据结构。要输出栈中所有元素,可以按照以下步骤进行:
- 定义一个循环,循环条件为栈不为空。
- 在循环中,使用栈的pop操作将栈顶元素弹出,并输出该元素。
- 重复步骤2直到栈为空。
以下是一个示例代码:
#include <stdio.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 value) { if (is_full(s)) { printf("Stack is full.\n"); return; } s->data[++(s->top)] = value; } // 出栈 int pop(Stack *s) { if (is_empty(s)) { printf("Stack is empty.\n"); return -1; } return s->data[(s->top)--]; } // 输出栈中所有元素 void print_stack(Stack *s) { printf("Stack elements: "); while (!is_empty(s)) { int value = pop(s); printf("%d ", value); } printf("\n"); } int main() { Stack stack; init(&stack); // 入栈操作 push(&stack, 1); push(&stack, 2); push(&stack, 3); // 输出栈中所有元素 print_stack(&stack); return 0; }
运行以上代码会输出栈中所有元素:3 2 1