知识梳理---栈
hy3686_1991
这个作者很懒,什么都没留下…
展开
-
栈------栈的压入和弹出序列
题目描述: 给定两个序列s1和s2,问是否有可能通过对s1进行入栈出栈操作得到s2?(s1中每个元素都不同)。 思路: 若弹出数字刚好是栈顶元素,则直接弹出。若要弹出的数字不在栈顶,那就继续将源序列压入栈中直到它在栈顶位置。若源序列都被压入了栈中,但仍为得到要弹出的数字,则证明s2不可能是s1的一个弹出序列。#include <iostream>#include <stack>using原创 2016-05-28 16:38:19 · 382 阅读 · 0 评论 -
栈------包含min函数的栈
题目描述: 实现一个栈数据结构,要求包含min()函数(返回当前栈中的最小元素,复杂度O(1)),同时还要有Push,Pop,Top函数且复杂度都是O(1)。 分析: 要实现min()函数,首先想到可以使用一个指针指向栈中最小元素,但是每当弹栈一次进行一次,最小值就有可能发生变化,倘若当前最小被弹出,那就需要找到次小值,此时使用一个指针的思路是不可行的。于是,可以使用一个辅助栈来记录最小元素,原创 2016-05-28 17:33:57 · 260 阅读 · 0 评论