Skip to content

第三次作业

编程题

  • Pop Sequence 问题
  • 需要维护两个数据结构,一个是队列,另一个是,对队列中的元素进行遍历(外层循环),内层循环是对栈进行顺序数据push,直到栈顶与que[head]重合,这个时候就可以stack.popque.head ++,进行下一轮遍历。
  • 核心思想就是如果想让一个元素被pop,他必然是在前一步刚好被push。
  • 所以我们的判据就是栈的空间是否足够
  • 如果出现逆序元素,则在遍历的过程中,因为stack不能Pop,因为这样就会影响实际的输出序列,所以为了与stack pop sequence对齐,只能添加元素而不能pop元素