一、栈
栈(Stack)是支持push和pop两种操作的数据结构。push是在栈的顶端放入一组数据的操作。反之,pop是从其顶端取出一组数据的操作。因此,最后进入栈的一组数据可以最先被取出(先进后出)。像是羽毛球筒里放入羽毛球和取出羽毛球的操作。
1.栈的两个相关函数
1)stack::pop 移除最近顶端的数据。
2)stack::top 访问最顶端的数据,(此操作通常也被称为 peek)。
2.栈的操作例子

#include<stack>
#include<cstdio>
using namespace std;
int main()
{
stack<int> s; // 声明存储int类型的数据栈
s.push(1); // {}->{1}
s.push(2); // {1}->{1,2}
s.push(3); // {1,2}->{1,2,3}
printf("%d\n",s.top()); // 3(访问最顶端数据)
s.pop(); // 移除最顶端数据 {1,2,3}->{1,2}
printf("%d\n",s.pop()); // 2
return 0;
}
二、队列
队列(Queue)与栈一样支持push和pop两个操作。但不同于栈的是,pop完成的不是取出最顶端的元素,而是取出最低端的元素。也就是说,最初放出的元素能够最先取出(先进先出)。见字知其意,排队就要有先来后到。像是火车进站出站一样。
1.队列的函数
1)queue::pop 移除最队列最前面的数据。
2)queue::front 访问队列最前面的数据。
2.队列的操作例子

#include<queue>
#include<cstdio>
using namespace std;
int main()
{
queue<int> que; // 声明存储int类型数据的队列
que.push(1); // {}->{1}
que.push(2); // {1}->{1,2}
que.push(3); // {1,2}->{1,2,3}
printf("%d\n",que.front()); // 1(访问最前面数据)
que.pop(); // 移除最先到的数据 {1,2,3}->{2,3}
printf("%d\n",que.front()); // 2
return 0;
}
博客主要介绍了栈和队列两种数据结构。栈支持push和pop操作,遵循先进后出原则,还介绍了stack::pop和stack::top函数;队列同样支持push和pop操作,但遵循先进先出原则,也介绍了queue::pop和queue::front函数,并给出了操作例子。
1199

被折叠的 条评论
为什么被折叠?



