C语言怎么利用栈来实现数组的逆序

   2024-10-13 9610
核心提示:可以利用栈来实现数组的逆序操作,具体步骤如下:首先定义一个栈结构,包括栈顶指针和栈的容量。将数组的元素依次压入栈中。然后

可以利用栈来实现数组的逆序操作,具体步骤如下:

首先定义一个栈结构,包括栈顶指针和栈的容量。将数组的元素依次压入栈中。然后依次从栈中弹出元素,并将其放入数组中,即实现了数组的逆序操作。

以下是一个示例代码:

#include <stdio.h>#include <stdlib.h>#define MAX_SIZE 100typedef struct {    int top;    int capacity;    int *array;} Stack;Stack* createStack(int size) {    Stack *stack = (Stack*)malloc(sizeof(Stack));    stack->top = -1;    stack->capacity = size;    stack->array = (int*)malloc(sizeof(int) * size);    return stack;}void push(Stack *stack, int data) {    stack->array[++stack->top] = data;}int pop(Stack *stack) {    return stack->array[stack->top--];}void reverseArray(int arr[], int size) {    Stack *stack = createStack(size);    for (int i = 0; i < size; i++) {        push(stack, arr[i]);    }    for (int i = 0; i < size; i++) {        arr[i] = pop(stack);    }    free(stack->array);    free(stack);}int main() {    int arr[] = {1, 2, 3, 4, 5};    int size = sizeof(arr) / sizeof(arr[0]);    reverseArray(arr, size);    for (int i = 0; i < size; i++) {        printf("%d ", arr[i]);    }    return 0;}

以上代码通过利用栈实现了数组的逆序操作,输出结果为:5 4 3 2 1。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号