C语言怎么利用栈来实现数组的逆序
导读:可以利用栈来实现数组的逆序操作,具体步骤如下: 首先定义一个栈结构,包括栈顶指针和栈的容量。 将数组的元素依次压入栈中。 然后依次从栈中弹出元素,并将其放入数组中,即实现了数组的逆序操作。 以下是一个示例代码: #include <...
可以利用栈来实现数组的逆序操作,具体步骤如下:
- 首先定义一个栈结构,包括栈顶指针和栈的容量。
- 将数组的元素依次压入栈中。
- 然后依次从栈中弹出元素,并将其放入数组中,即实现了数组的逆序操作。
以下是一个示例代码:
#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