用c写一个入队和出队栈
时间: 2024-05-10 07:20:06 浏览: 7
这里提供两种实现方式:一种是用两个栈实现队列,另一种是用一个栈实现队列。
1. 用两个栈实现队列
```
#include <stdio.h>
#define MAX_SIZE 10
int stack1[MAX_SIZE];
int top1 = -1;
int stack2[MAX_SIZE];
int top2 = -1;
void push(int data) {
if (top1 == MAX_SIZE - 1) {
printf("Stack Overflow!\n");
return;
}
stack1[++top1] = data;
}
int pop() {
if (top1 == -1 && top2 == -1) {
printf("Stack Underflow!\n");
return -1;
}
if (top2 == -1) {
while (top1 != -1) {
stack2[++top2] = stack1[top1--];
}
}
return stack2[top2--];
}
int main() {
push(1);
push(2);
push(3);
printf("%d\n", pop());
push(4);
printf("%d\n", pop());
printf("%d\n", pop());
printf("%d\n", pop());
printf("%d\n", pop());
return 0;
}
```
2. 用一个栈实现队列
```
#include <stdio.h>
#define MAX_SIZE 10
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 Underflow!\n");
return -1;
}
int data = stack[0];
for (int i = 0; i < top; i++) {
stack[i] = stack[i + 1];
}
top--;
return data;
}
int main() {
push(1);
push(2);
push(3);
printf("%d\n", pop());
push(4);
printf("%d\n", pop());
printf("%d\n", pop());
printf("%d\n", pop());
printf("%d\n", pop());
return 0;
}
```
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.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)
![](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)