c语言怎么输出栈中所有元素

avatar
作者
猴君
阅读量:2

在C语言中,栈是一种后进先出(LIFO)的数据结构。要输出栈中所有元素,可以按照以下步骤进行:

  1. 定义一个循环,循环条件为栈不为空。
  2. 在循环中,使用栈的pop操作将栈顶元素弹出,并输出该元素。
  3. 重复步骤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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!