栈与队列的学习

来源:互联网 发布:网管员必读 网络基础 编辑:程序博客网 时间:2024/06/05 03:46

栈和队列有两大特性:

         1. 他们可以保存程序运行路径中各个点的信息,以便用于回溯操作或其他需要访问已经访问过的节点信息的操作。
             比如:栈用于解决迷宫问题,就是用到了若线路不通,需要回溯到已访问过的结点,从那个结点再做一次与这次路径不同的选择。直到栈顶元素为              出口
          2.先进后出 和 先进先出的 次序
             先进后出次序 其实就是一种将序列反序操作的次序
             先进先出次序 其实就是一种将序列顺序操作的次序
           

队列:(queue)特点:先进先出

        queue<int>M;

       M.empty()    是的话返回true,不是返回false;

       M.push()      从已有元素后面增加元素;

       M.size()        输出现有元素的个数; 

       M.front()      显示第一个元素;

       M.back()       显示最后一个元素;

       M.pop()        清除第一个元素  不返回该元素;

       M.size()        统计队列个数

栈:(stack):先进后出

stack<int>s;

       s.push(x)      将x加入栈中,即入栈操作

       s.pop()        出栈操作(删除栈顶),只是出栈,没有返回值

       s.top()        返回第一个元素(栈顶元素)

       s.size()       返回栈中的元素个数

       s.empty()      当栈为空时,返回 true

可用于数制转化、括号匹配、行编辑、迷宫求解等问题。
原创粉丝点击