首页主机资讯C语言怎么利用栈来实现数组的逆序

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

时间2024-06-09 10:48:03发布访客分类主机资讯浏览414
导读:可以利用栈来实现数组的逆序操作,具体步骤如下: 首先定义一个栈结构,包括栈顶指针和栈的容量。 将数组的元素依次压入栈中。 然后依次从栈中弹出元素,并将其放入数组中,即实现了数组的逆序操作。 以下是一个示例代码: #include <...

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

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

以下是一个示例代码:

#include <
    stdio.h>
    
#include <
    stdlib.h>


#define MAX_SIZE 100

typedef 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。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: C语言怎么利用栈来实现数组的逆序
本文地址: https://pptw.com/jishu/678497.html
F2H.cloud:英国VPS、法国VPS、德国VPS首月付£2.59起 C语言数组逆序有可能引发哪些常见错误或问题

游客 回复需填写必要信息