这个和bzoj同名题不一样,有多个匹配串 但是思路是一样的,写个AC自动机,同样是开两个栈,一个存字符,一个存当前点在trie树上的位置,然后如果到了某个匹配串的末尾,则弹栈 cpp include include include include using namespace std; const ...
分类:
其他好文 时间:
2018-05-09 15:03:24
阅读次数:
150
好久没写kmp都不会写了…… 开两个栈,s存当前串,c存匹配位置 用t串在栈s上匹配,栈每次入栈一个原串字符,用t串匹配一下,如果栈s末尾匹配了t则弹栈 cpp include include include using namespace std; const int N=1000005; int ...
分类:
其他好文 时间:
2018-05-09 12:10:32
阅读次数:
109
题目: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素x推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: 解题思路: 使用两个栈,一个栈保存所有的操 ...
分类:
编程语言 时间:
2018-05-06 22:53:16
阅读次数:
197
1.1树结构思维导图 .2 树结构学习体会 对于二叉树比前面链表难许多,但是掌握好基本的就发现好了一点点,对于二叉树操作,我感觉就是二叉树的遍历,从写的代码来看,很多都是用了遍历,而且还要明白递归函数的使用方法,然后更进一步的学会如何使用栈和队列来实现不同问题的解决,在这一章,在写代码时候,一定用理 ...
分类:
其他好文 时间:
2018-05-05 19:44:51
阅读次数:
212
栈和队列是数据结构中非常常见又非常基础的线性表,在某些场合栈和队列使用很多,因此本篇主要介绍栈和队列,并用Java实现基本的栈和队列,同时用两个栈实现队列和用两个队列实现栈。 栈:栈是一种基于“后进先出”策略的线性表。在插入时(入栈),最先插入的元素在栈尾,最后插入的元素在栈顶;在删除时(出栈),最 ...
分类:
编程语言 时间:
2018-04-20 23:30:55
阅读次数:
195
栈和队列 1. 栈的实现 2. 队列实现 3. 两个栈实现一个队列 4. 两个队列实现一个栈 5. 设计含最小函数min的栈 6. 判断出栈序列是否合法 链表 ...
分类:
其他好文 时间:
2018-04-18 18:54:21
阅读次数:
184
import java.util.Stack; /* * 栈是先进后出,队列是先进先出。所以两个栈相互配合要实现先进先出的效果。用两个栈正好能把顺序反过来实现类似队列的操作。 * 1、如果stack1要往stack2中压入数据,那么必须一次性把stack1中的数据全部压入 * 2、如果stack2不... ...
分类:
其他好文 时间:
2018-04-15 13:34:31
阅读次数:
150
1. 二叉树遍历(递归和非递归) 构造二叉树: 递归版前序遍历: 递归版中序遍历: 递归版后序遍历: 非递归版前序遍历: 非递归版中序遍历: 非递归版后序遍历: 这里用了两个栈,其实一个栈也能实现,这里这样做是因为可以和前序遍历对比着记,比较容易。 ...
分类:
编程语言 时间:
2018-04-11 21:47:06
阅读次数:
165
题干:用两个栈实现一个队列,完成队列的push和pop操作,队列中的元素是int型 思路:首先我初始化两个栈,一个栈往里面添加数据,如果这个栈中不为空就弹出数据压入到第二个栈中,弹出第二个栈中的数据 ...
分类:
其他好文 时间:
2018-03-30 20:03:33
阅读次数:
109