zoukankan      html  css  js  c++  java
  • 栈是一种只能在一端出入的特殊线性结构


    进栈:
    · 如果栈已经满了,那么就溢出,做出错处理
    · 如果不满那么入栈


    退栈:
    · 如果栈已经空了,那么给出下溢信息,做出错处理
    · 否则出栈


    栈只能后进先出,所以非法的状态有:

    1. 因为已经满了而溢出
    2. 因为已经是空栈了而下溢
    3. 由于栈顶有元素没有出来而导致栈底的元素出不来
      (考的最多的是第三种非法状态,这就需要模拟了)

    例题:

    1. (NOIP2006)设栈的初始状态为空,元素a、b、c、d、e依次进栈,出栈序列不可能出现的是:
      A. a、b、c、e、d
      B. b、c、a、e、d
      C. a、e、c、b、d
      D. d、c、e、b、a
      解析:C
      A:进、出、进、出、进、出、进、进、出、出
      B:进、进、出、进、出、出、进、进、出、出
      C:进、出、进、进、进、进、出,此时从栈顶到栈底顺序为d、c、b,而题目为c、b、d,出栈状态非法
      D:进、进、进、进、出、出、进、出、出、出
    2. (NOIP2003提高组)已知有元素(8,25,14,87,51,90,6,19,20),则这些元素以()的顺序入栈,使得出栈顺序满足:8在51前;90在87后;20在14后;25在6前;19在90后
      A. 20,6,8,51,90,25,14,19,87
      B. 51,6,19,20,14,8,87,90,25
      C. 19,20,90,8,6,25,51,14,87
      D. 6,25,51,8,20,19,90,87,14
      E. 25,6,8,51,87,90,19,14,20
      解析:D根据栈后进先出原则,将题目给的顺序倒过来,就是入栈顺序需要满足的
      那么51在8前,90在87前,20在14前,6在25前,19在90前
      A. 8在51前;90在19前
      B. 90在87后
      C. 8在51前
      D. 满足要求
      E. 8在51前;87在90前;14在20前;25在6前;90在19前————忘记了入栈顺序和出栈顺序相反了的
  • 相关阅读:
    日志命令
    QPS、TPS、PV、UV、GMV、IP、RPS
    Tmux实践
    1-2+3-4+5-6....-100 除了88以外其他数字的和 python 实现
    MCNN: 多列卷积神经网络的单图像人群计数
    facenet-pytorch库的简单使用
    SENet笔记
    目标检测 anchor的生成
    matplotlib动图绘制
    感知机算法及其对偶形式
  • 原文地址:https://www.cnblogs.com/Wuzhuoming-sirenboke/p/13779991.html
Copyright © 2011-2022 走看看