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前————忘记了入栈顺序和出栈顺序相反了的
  • 相关阅读:
    475. Heaters
    69. Sqrt(x)
    83. Remove Duplicates from Sorted List Java solutions
    206. Reverse Linked List java solutions
    100. Same Tree Java Solutions
    1. Two Sum Java Solutions
    9. Palindrome Number Java Solutions
    112. Path Sum Java Solutin
    190. Reverse Bits Java Solutin
    202. Happy Number Java Solutin
  • 原文地址:https://www.cnblogs.com/Wuzhuoming-sirenboke/p/13779991.html
Copyright © 2011-2022 走看看