文章目录
写在前面
最近开始学习算法,备战算法比赛。以下是我对栈和队列,以及运用栈和队列初探深度优先搜索(DFS)和广度优先搜索(BFS)
C++栈的基本使用
栈遵循FILO原则,也就是先进后出。也可以被理解成LIFO,也就是后进先出
C++中 stack 头文件有他的具体实现,这里只是讲讲怎么简单的去运用它
,其中stack.top()只是显示栈顶并不弹出,要用stack.pop()来弹出
#include<iostream>
#include<stack>
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;
//cout << s.top() << endl; //测试有没有被弹出
s.pop();
return 0;
}
C++队列的使用
队列遵循FIFO原则,也就是先进先出原则,他的C++表示方法和栈很像,区别在于头文件是queue以及显示队列头的元素用queue.front()来表示
#include<queue>
#include<iostream>
using namespace std;
int main()
{
queue<int> s1;
s1.push(1);
s1.push(2);
s1.push(3);
cout << s1.front() << endl;
s1.pop();
cout << s1.front() << endl;
s1.pop();
cout << s1.front() << endl