关于栈、队列的建立、增值、访问以及移除
许久没有学习关于栈和队列的内容,今儿拿出来再复习相关基础操作。
栈:
栈(Stack)是支持push和pop两种操作的数据结构。push是在栈的顶端放入一组数据的操作。反之,pop是从其顶端取出一组数据的操作。因此,最后进入栈的一组数据可以最先被取出(这种行为被叫做LIFO: Last In First Out,即后进先出)。
stack < int > s 建立栈
s.pop() 移除栈顶元素
s.top() 访问栈顶元素
s.push(x) 往s里增加x元素
图片描述:
代码描述:
#include<stack>
#include<iostream>
using namespace std;
stack<int> s;
int main()
{
s.push(1);// {}->{1};
s.push(2);// {1}->{1,2};
s.push(3);//{1,2}->{1,2,3};
cout<<s.top()<<endl; //3
s.pop();//从栈顶移除{1,2,3}->{1,2};
cout<<s.top()<<endl; //2
s.pop();//从栈顶移除{1,2}->{1};
cout<<s.top()<<endl; //1
s.pop();//从栈顶移除{1}->{};
return 0;
}
队列:
队列(Queue)与栈一样支持push和pop两个操作。但与栈不同的是,pop完成的不是取出最顶端的元素,而是取出最底端的元素。也就是说最初放入的元素能够最先被取出(这种行为被叫做FIFO: First In First Out,即先进先出)。
queue < int > que 建立队列
que.pop() 移除最低端的元素
que.push(x) 增加x元素放到顶端
que.front() 访问最低端元素
图片描述:
代码描述:
#include<iostream>
#include<queue>
using namespace std;
queue<int>que;
int main()
{
que.push(1);//{}->{1};
cout<<que.front()<<endl;// 1
que.push(2);//{1}->{1,2};
cout<<que.front()<<endl;//1 先进先出
que.push(3);//{1,2}->{1,2,3};
cout<<que.front()<<endl;//1 先进先出,因为1先进所以先出,与栈不同,栈是后进先出,所以是s。top
que.pop();//{1,2,3}->{2,3};
cout<<que.front()<<endl; //2
que.pop();//{2,3}->{3};
cout<<que.front()<<endl;//3
que.pop();//{3}->{};
cout<<que.front()<<endl; // 空即为0
return 0;
}