单链表

最大的用途:作为邻接表存储图和树

用数组模拟单链表

:::info why》
用struct的方式每次都要new一个对象,非常耗时 ::: 用数组模拟
两个数组,一个存val,另一个存next指针 :::warning image.png :::


单调栈

:::info 给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。 :::

  • 暴力:两重循环

思考,暴力法中有何性质?
可以用栈来存储i左边的所有元素,指针每往右边移动,向栈里加入一个数
每次找从栈顶向下找(暴力法的思路) :::info 可以看出有些元素永远不会作为答案输出:
if ax>ay; ximage.png
删除完会变成单调上升的
image.png :::