zoukankan      html  css  js  c++  java
  • 队列与栈

    1,队列:先进先出

    比如:

    入队顺序:12345

    出队顺序:12345

    2,栈:先进后出

     

    比如:

    入队顺序:12345

    出队顺序:54321

    3,循环队列【队头队尾相连】

    队空的条件:head=tail

    在队空的时候,head=tail,当存入一个数时,尾指针就向后移一格,所以当在零号位置存一个数据时,尾指针指向1,在1存数据时,尾指针指向2,。。。,当队满的时候,尾指针又指向了头指针的位置,即head=tail。这时就容易产生混淆

    解决这个问题的两个方案:

    1,记录队空,队满。【很少使用】

    2,队列中少存一个元素。【经常使用的方法】

    通常我们都是使用第二种方式来解决,在这种情况下,队满 的条件是:(nail+1)%size=head

    为什么要写的这么复杂呢?

    主要是因为考虑到,head不在0位置的情况。【比如说一个容量为5的队列,现在存4个为满,假设head在2位置,则nail指向1未满,如下图:】

    所以,在队列中少放一个元素时,队满的条件是:(nail+1)%size=head

    4,常考题型

    (1)元素A,B,C按顺序进栈,写出可能的出栈顺序

      第一种情况,

            A,B,C全部进栈后出栈,则出栈顺序C,B,A

      第二种情况,

            A,B进栈后,B,A出栈,然后C入栈,C出栈,则出栈顺序:B,A,C

      第三种情况,

            A,B进栈后,B出栈,然后C入栈,C,A出栈,则出栈顺序:B,C,A

      第四种情况,

            A进栈后,A出栈,然后B,C入栈,C,B出栈,则出栈顺序:A,C,B

      第五种情况,

            A进栈后,A出栈,然后B入栈,B出栈,然后C入栈,C出栈,则出栈顺序:A,B,C

  • 相关阅读:
    luogu P1162 填涂颜色 x
    【説明する】素数
    codevs 4064 组合 x
    codevs 2039 骑马修栅栏 USACO x
    codevs 2038 香甜的黄油x+luogu P1828 x
    [HIHO1079]离散化(线段树、染色)
    [HIHO1196]高斯消元·二(高斯消元、枚举自由变元)
    hihoCoder太阁最新面经算法竞赛17
    [POJ1753]Flip Game(异或方程组,高斯消元,枚举自由变量)
    [POJ1681]Painter's Problem(高斯消元,异或方程组,状压枚举)
  • 原文地址:https://www.cnblogs.com/excellencesy/p/8653775.html
Copyright © 2011-2022 走看看