STL中栈和队列

栈定义:栈是限定只能在表的一端进行插入和删除的线性表。在表中允许插入和删除的一端叫做栈顶(top);表的另一端则叫做栈底(bottom)。栈又称后进先出(Last In First Out,简写为LIFO)表。

•栈满:栈内元素个数为MaxSize时。top=MaxSize-1

•栈空:栈内无元素。top=-1

•上溢:当栈满时,还要进栈。

•下溢:当栈空时,还要出栈。

队列定义:队列是一种特殊的线性表。在队列中,仅允许一端进行插入,在另一端进行删除。允许插入的一端叫做队尾(rear);允许删除的另一端叫做队头(front)。队列又称先进先出(First in First Out,简写为FIFO)表。

栈(statck)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的特性就可以了。

使用标准库的栈和队列时,先包含相关的头文件

  1.  
    #include<stack>
  2.  
    #include<queue>

定义栈如下:

stack<int>stk;

定义队列如下:

queue<int>q;

栈提供了如下的操作

  1.  
    s.empty() 如果栈为空返回true,否则返回false
  2.  
    s.size() 返回栈中元素的个数
  3.  
    s.pop() 删除栈顶元素但不返回其值
  4.  
    s.top() 返回栈顶的元素,但不删除该元素
  5.  
    s.push() 在栈顶压入新元素

队列提供了下面的操作

    1.  
      q.empty() 如果队列为空返回true,否则返回false
    2.  
      q.size() 返回队列中元素的个数
    3.  
      q.pop() 删除队列首元素但不返回其值
    4.  
      q.front() 返回队首元素的值,但不删除该元素
    5.  
      q.push() 在队尾压入新元素
    6.  
      q.back() 返回队列尾元素的值,但不删除该元素
原文地址:https://www.cnblogs.com/zhangfuxiao/p/9274923.html