#include <stdio.h>
// 栈结构体
typedef struct stock {
int data[20];
int top;
} stock;
// 压入
void push(stock* s, int val) {
s->data[s->top] = val;
s->top++;
}
// 弹出
int pop(stock* s) {
s->top++;
return s->data[s->top];
}
// 清空
int empty(stock* s) {
return s->top == 0 ? 1 : 0;
}
// 打印栈
void print(stock* s) {
for (int i = 0; i < s->top; i++) {
printf("%d ", s->data[i]);
}
}
// 颠倒栈元素
void reverse(stock* s, stock* rs) {
if (empty(s)) return;
int val = pop(s);
push(rs, val);
reverse(s, rs);
}
栈的颠倒算法 递归实现
最新推荐文章于 2022-08-11 15:46:15 发布