题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。 思路 ...
分类:
其他好文 时间:
2018-12-27 18:33:01
阅读次数:
116
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长 ...
分类:
其他好文 时间:
2018-12-24 23:31:34
阅读次数:
136
今天做周赛又碰到了单调栈的题目,之前没有做好总结,这次好好总结下 1.基本思想 单调栈求解的基本问题 在一个线性数据结构中,为任意一个元素找左边和右边第一个比自己大/小的位置,要求O(n)的复杂度 基本解法很容易想到O(n^2)的解法,关键是O(n)的解法,就需要借助单调栈了。单调栈的一大优势就是线 ...
分类:
其他好文 时间:
2018-12-24 02:31:43
阅读次数:
190
Targan算法是用来处理强连通问题(a->b且b->a) Targan算法里面需要定义两个数组dfn与low并通过栈来实现. 1,dfn[x]: x是第几个入栈的。2,low[x]: 节点x能够回溯到的最早位于栈中的节点。判断结束的条件就是当满足low[x]==dfn[x];可以理解为low[x] ...
分类:
编程语言 时间:
2018-12-24 00:03:16
阅读次数:
158
第一、基本概念 栈中的元素遵守“先进后出”的原则(LIFO,Last In First Out) 只能在栈顶进行插入和删除操作 压栈(或推入、进栈)即push,将数据放入栈顶并将栈顶指针加一 出栈(或弹出)即pop,将数据从栈顶删除并将栈顶指针减一 栈的基本操作有:pop,push,判断空,获取栈顶 ...
分类:
编程语言 时间:
2018-12-23 00:18:12
阅读次数:
242
出栈合法性 题目描述 已知自然数1,2,...,N(1<=N<=100)依次入栈,请问序列C1,C2,...,CN是否为合法的出栈序列。 输入 输入包含多组测试数据。 每组测试数据的第一行为整数N(1<=N<=100),当N=0时,输入结束。 第二行为N个正整数,以空格隔开,为出栈序列。 输出 对于 ...
分类:
其他好文 时间:
2018-12-22 13:53:15
阅读次数:
230
栈和队列 栈和队列是比数组更加抽象的结构,本人理解是为了特殊场景下建立秩序的一个工具,表示抽象的一个过程,数组更像一个结果。 栈 先进后出 栈空间(存放元素位置),栈顶元素(指向栈顶的指针),栈的长度 创建一个空栈 入栈 出栈 查看元素 Java代码实现 ...
分类:
其他好文 时间:
2018-12-20 00:02:06
阅读次数:
182
栈和队列 栈和队列是比数组更加抽象的结构,本人理解是为了特殊场景下建立秩序的一个工具,表示抽象的一个过程,数组更像一个结果。 栈 创建一个空栈 入栈 出栈 查看元素 Java代码实现 ...
分类:
编程语言 时间:
2018-12-19 23:23:29
阅读次数:
180
栈和队列 栈和队列是比数组更加抽象的结构,本人理解是为了特殊场景下建立秩序的一个工具,表示抽象的一个过程,数组更像一个结果。 栈 创建一个空栈 入栈 出栈 查看元素 Java代码实现 ...
分类:
其他好文 时间:
2018-12-19 23:23:21
阅读次数:
197
(希望我所描述的,给你带来收获!) 对于栈,我们描述的较为简单~完全基于第一篇文章动态数组的实现——第一篇文章传送门:动态数组的实现 第一步:声明一个Stack接口 第二步:新建一个ArrayStack类去实现Stack接口 注:栈的实现完全是基于Array<E>类的,其入栈操作则是在数组末尾增加一 ...
分类:
编程语言 时间:
2018-12-19 13:17:17
阅读次数:
183