数据结构_栈和队列的区别

栈(stack)和队列(queue)是保存时间先后次序的两种简便方案。

栈(Stack)的规则:后进先出LIFO
入栈push(),出栈pop(),使用前需要包含头文件stack

队列(Queue)的规则:先进先出FIFO
入队push(),出队pop(),使用前包含头文件queue

具体区别请看下面的例程(代码可运行):

// stack_queue.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。

#include "pch.h"
#include <iostream>
#include<stack>
#include<queue>

using namespace std;

int main()
{
	stack<int> S;
	S.push(1);//入栈
	S.push(2);
	S.push(3);
	cout <<"栈顶元素为:"<< S.top() << endl;
	S.pop();//出栈
	cout << "出栈后栈顶元素为:" << S.top() << endl;
	S.pop();
	cout << "继续出栈后栈顶元素为:" << S.top() << endl;


	queue<int> Q;
	Q.push(1);//入队
	Q.push(2);
	Q.push(3);
	cout << "队首元素为:" << Q.front() << endl;
	Q.pop();//出队
	cout << "出队后队首元素为:" << Q.front() << endl;
	Q.pop();
	cout << "继续出队后队首元素为:" << Q.front() << endl;

}

运行结果:
在这里插入图片描述

进栈顺序是1,2,3.
出栈的顺序是3,2,1;
规则:栈后进先出。

进队顺序是1,2,3.
出队的顺序是1,2,3;
规则:队列先进先出。

上面的运行结果可以帮助我们理解栈后进先出(LIFO),队列先进先出(FIFO)的规则。

希望对你有帮助。

发布了113 篇原创文章 · 获赞 69 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/shizheng_Li/article/details/104461894