代码随想录算法训练营day10|232.用栈实现队列、225.用队列实现栈

发布时间:2024年01月17日
  • ?理论基础
  • ?232.用栈实现队列
  • ?225.?用队列实现栈

理论基础?

了解一下?栈与队列的内部实现机智,文中是以C++为例讲解的。?

文章讲解:代码随想录

?232.用栈实现队列?

大家可以先看视频,了解一下模拟的过程,然后写代码会轻松很多。

题目链接/文章讲解/视频讲解:代码随想录

??225.?用队列实现栈?

可以大家惯性思维,以为还要两个队列来模拟栈,其实只用一个队列就可以模拟栈了。?

建议大家掌握一个队列的方法,更简单一些,可以先看视频讲解

题目链接/文章讲解/视频讲解:代码随想录


stack<int> stIn;
stack<int> stOut;
MyQueue() {

}
void push(int x) {
	stIn.push(x);
}
int pop() {
	if (stOut.empty()) {
		while (!stIn.empty()) {
			stOut.push(stIn.top());
			stIn.pop();
		}
	}
	int result = stOut.top();
	stOut.pop();
	return result;
}
int peek() {
	int res = this->pop();
	stOut.push(res);
	return res;
}
bool empty() {
	return stIn.empty() && stOut.empty();
}

queue<int> que;
MyStack() {

}
void push(int x) {
	que.push(x);
}
int pop() {
	int size = que.size();
	size--;
	while (size--) {
		que.push(que.front());
		que.pop();
	}
	int result = que.front();
	que.pop();
	return result;
}
int top() {
	return que.back();
}
bool empty() {
	return que.empty();
}

文章来源:https://blog.csdn.net/2302_79277225/article/details/135658078
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。