algorithm/算法/learn/体系/4.一些基础的数据结构.md

1.2 KiB
Raw Blame History

  1. 单链表、双向链表
  2. 栈队列

数组做队列

  1. 数组固定长度,两个指针追赶。只用一个元素时不好实现。
  2. 添加变量队列元素个数。begin和end解耦。

栈随时获取最小值

  1. 数据栈
  2. 最小栈(弹出后依然能获取最小值)
  3. 压栈,数据栈正常压入,最小栈如果压入数小于栈顶则亚如当前数,如果大于则重复压入栈顶。
  4. 弹出同步弹出。

图优先遍历

深度优先遍历:栈 宽度优先遍历:队列

栈实现队列

  1. 设置push栈和pop栈两个来回倒push压入弹出时push中的数据放入pop中从pop中弹出。一次性倒完

队列实现栈

  1. 压栈放入一个队列中,需要弹栈的时候将全部放入另一个队列中,留下最后一个弹出。
  2. 再次放入,再放在当前队列中存入,弹出的时候,再次导入另一个队列中,最后一个弹出。

递归

递归改非递归

使用系统栈。树遍历。 递归到动态规划。 大化小,递归图。

Master公式分析递归时间复杂度

子问题规模一致

哈希表 HashMap

有序表 TreeMap

归并排序