一、栈
1.相关语法
s.top() 取栈顶元素 s.pop() 出栈 s.push(num) 入栈
s.empty() 判空 s.size() 大小
2.
中缀转后缀
①遇到数字直接加入表达式
②遇到运算符,入栈时,先看如果站内有优先或者等于当前运算符级别的,就先弹出,之后再将当前运算符压入站内
③遇到左括号:直接压入栈内
④遇到右括号:将栈内运算符弹出直到遇到左括号为止。
⑤最后将所有符号加入表达式
计算时:
①遇到数字:直接入栈
②遇到操作符:弹出前两个数,计算之后压入栈中(注意后弹出的要在前,先弹出的要在后)
二、队列
1.先进先出
2.相关语法
q.front() 取队顶元素 q.pop() 出队 q.push(num) 入队
q.empty() 判空 size = q.size() 大小
三、kmp
1.是一种改进的字符串匹配算法。文本字符串设为s[i],模板字符串设为p[j],
2.i=i-j+1:就是让文本字符串,回到已经移动了这么多格的位置
也就是说,我们不想移动i,我们修改模板字符串j的位置,但是j的数值也不是随便改变的。
文章链接:KMP
四、查并集
1.将两个集合合并
2.询问两个元素是否在一个集合当中
基本原理:每个集合用一颗树来表示,树根的编号就是整个集合的编号。每个节点存储它的父节点,p[x]表示x的父节点
本文含有隐藏内容,请 开通VIP 后查看