c语言栈实现逆序输出
时间: 2023-10-11 20:02:49 浏览: 165
C语言使用数组来实现栈的数据结构,可以通过改变入栈和出栈的顺序来实现逆序输出。
在使用栈实现逆序输出的过程中,我们首先需要定义一个数组作为栈,并定义一个指针作为栈顶指针。
接下来,我们将需要输出的数据依次入栈。入栈操作会将数据放入数组中,并将栈顶指针向上移动一个位置。重复这个操作直到所有数据都入栈。
当数据都入栈后,我们可以通过出栈操作将数据逆序输出。出栈操作会将栈顶指针所对应的数据弹出,并将栈顶指针向下移动一个位置。输出的数据可以通过打印到屏幕上或者保存在另一个数组中。
具体实现代码如下所示:
```c
#include <stdio.h>
#define MAX_SIZE 50
int stack[MAX_SIZE];
int top = -1;
void push(int data) {
if (top == MAX_SIZE - 1) {
printf("Stack overflow\n");
return;
}
stack[++top] = data;
}
int pop() {
if (top == -1) {
printf("Stack is empty\n");
return -1;
}
return stack[top--];
}
void reversePrint(int arr[], int size) {
int i;
for (i = 0; i < size; i++) {
push(arr[i]);
}
printf("Reverse order: ");
while (top != -1) {
printf("%d ", pop());
}
printf("\n");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
reversePrint(arr, size);
return 0;
}
```
运行以上代码,输出将会是: "Reverse order: 5 4 3 2 1"
以上代码中,我们首先将数组 arr 中的数据依次入栈,然后循环出栈操作将栈中的数据逆序输出。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)