算法-C++STL-栈stack与队列queue

栈(Stack)和队列(Queue)是两种操作受限的线性表

(线性表:线性表是一种线性结构,它是一个含有n≥0个结点的有限序列,同一个线性表中的数据元素数据类型相同并且满足“一对一”的逻辑关系。

栈 stack<>      表尾push  表头删;
入栈:              s.push(x);将x添加到 栈中(添加到栈顶)。
出栈:              s.top();返回栈顶元素。
弹出栈顶元素:s.pop();
计算栈中的元素 个数:s.size();
判断栈是否为空:s.empty();栈为空数返回true。
 

#include<iostream>
#include<stack>
using namespace std;
int main()
{
    stack<int> s;
    s.push(1);//将1,2,3,4依次放入到栈顶; 
    s.push(2);
    s.push(3);
    s.push(4);
    int slen=s.size();//计算栈 中的元素个数; 
    cout<<"栈中的元素个数为:"<<slen<<endl; 
    while(!s.empty())//如果为空栈,跳出循环
    {
        int x=s.top();//返回栈顶元素; 
        cout<<x<<" ";
        s.pop();//弹出栈顶元素; 
     } 
     return 0;
}

输出为 4,3,2,1

 

队列   表尾插入push  表头删
 

入队:q.push(x),将元素添加到队列的末尾。
出队:q.pop(),弹出队列的第一个元素(并不返回该元素的值)。
访问队首元素:q.front(),返回队首元素的值。
访问队尾元素:q.back(),放回队尾元素的值。
判断队列是否为空:q.empty(),如果队列为空,返回true。
计算队列中的元素个数:q.size(),返回队列中的元素个数。
 

#include<iostream>
#include<queue>
using namespace std;
int main()
{
    queue<int> q;
    q.push(1);//将一到四的添加到队列中,每次的添加时都添加到队列的末尾,添加完之后顺序为1,2,3,4; 
    q.push(2);
    q.push(3);
    q.push(4);
    int qlen=q.size();//计算队列中的元素个数;
    cout<<"队列中的元素个数为:"<<qlen<<endl; 
    while(!q.empty())//判断队列是否为空,为空时就跳出循环;
    {
        int x=q.front();//访问队列的第一个元素;
        cout<<x<<" ";//输出队首元素;
        q.pop(); //弹出队首元素; 
     } 
     return 0;
}
 
输出 1 2 3 4

 

posted @ 2020-04-07 06:21  jasmineTang  阅读(71)  评论(0)    收藏  举报