1.2 KiB
1.2 KiB
- 单链表、双向链表
- 栈队列
数组做队列
- 数组固定长度,两个指针追赶。只用一个元素时不好实现。
- 添加变量队列元素个数。begin和end解耦。
栈随时获取最小值
- 数据栈
- 最小栈(弹出后依然能获取最小值)
- 压栈,数据栈正常压入,最小栈如果压入数小于栈顶则亚如当前数,如果大于则重复压入栈顶。
- 弹出同步弹出。
图优先遍历
深度优先遍历:栈 宽度优先遍历:队列
栈实现队列
- 设置push栈和pop栈,两个来回倒,push压入,弹出时push中的数据放入pop中,从pop中弹出。(一次性倒完,)
队列实现栈
- 压栈放入一个队列中,需要弹栈的时候将全部放入另一个队列中,留下最后一个弹出。
- 再次放入,再放在当前队列中存入,弹出的时候,再次导入另一个队列中,最后一个弹出。
递归
递归改非递归
使用系统栈。树遍历。 递归到动态规划。 大化小,递归图。
Master公式分析递归时间复杂度
子问题规模一致