c语言栈怎么实现逆序输出

   2025-02-13 3620
核心提示:要实现栈的逆序输出,可以借助一个辅助栈来实现。具体步骤如下:初始化一个栈stack和一个辅助栈tempStack。将栈stack的所有元素

要实现栈的逆序输出,可以借助一个辅助栈来实现。具体步骤如下:

初始化一个栈stack和一个辅助栈tempStack。将栈stack的所有元素依次出栈,入栈到辅助栈tempStack中。依次出栈辅助栈tempStack的元素,即可实现逆序输出。

以下是一个C语言的示例代码实现:

#include <stdio.h>#include <stdlib.h>#define MAX_SIZE 100typedef struct {    int top;    int data[MAX_SIZE];} Stack;// 初始化栈void initStack(Stack* stack) {    stack->top = -1;}// 判断栈是否为空int isEmpty(Stack* stack) {    return stack->top == -1;}// 判断栈是否已满int isFull(Stack* stack) {    return stack->top == MAX_SIZE - 1;}// 入栈void push(Stack* stack, int value) {    if (isFull(stack)) {        printf("Stack is full.\n");        return;    }    stack->data[++stack->top] = value;}// 出栈int pop(Stack* stack) {    if (isEmpty(stack)) {        printf("Stack is empty.\n");        return -1;    }    return stack->data[stack->top--];}// 逆序输出栈的元素void reverseOutput(Stack* stack) {    Stack tempStack;    initStack(&tempStack);    // 将栈的元素依次出栈,入栈到辅助栈中    while (!isEmpty(stack)) {        int value = pop(stack);        push(&tempStack, value);    }    // 依次出栈辅助栈的元素,即可实现逆序输出    while (!isEmpty(&tempStack)) {        int value = pop(&tempStack);        printf("%d ", value);    }    printf("\n");}int main() {    Stack stack;    initStack(&stack);    // 入栈操作    push(&stack, 1);    push(&stack, 2);    push(&stack, 3);    push(&stack, 4);    // 逆序输出栈的元素    reverseOutput(&stack);    return 0;}

运行以上代码,输出结果为:4 3 2 1,即为栈的逆序输出。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言