💖💖💖欢迎来到我的博客,我是anmory💖💖💖
又和大家见面了
欢迎来到动画详解LeetCode算法系列
用通俗易懂的动画让算法题不再神秘
先来自我推荐一波
个人网站欢迎访问以及捐款
推荐阅读
如何低成本搭建个人网站
专栏:动画详解leetcode算法题
C语言知识
题目描述
解题思路
这道题我们引入两个栈,一个用来入栈,一个用来出栈
这样,出栈的栈顶元素就是队列的队头元素了
动画详解
代码实现
这里由于使用的是C语言,需要自己写栈
所以代码量会比较多,大家不要被吓到了哈
typedef int DataType;
// 定义一个栈,包含数据,栈顶元素下标,栈的大小
struct Stack
{
DataType* data;
int top;
int capacity;
};
typedef struct Stack Stack;
// 栈的初始化
void StackInit(Stack* st)
{
assert(st);
st->data = NULL;
st->capacity = 0;
// top指向栈顶元素的下一个
st->top = 0;
}
// 入栈
void StackPush(Stack* st, DataType x)
{
assert(st);
if (st->top == st->capacity)
{
int newcapacity = st->capacity == 0 ?