栈帧
栈帧随着方法的调用而创建,随着方法结束而销毁,存储了方法的局部变量信息
注意:栈中黑色代码不存在于栈帧中
如果递归调用没有终止,将会一直消耗栈空间,最终会导致栈内存溢出(Stack Overflow)
所以必须要有一个明确的结束递归的条件(也叫做边界条件、递归基)
栈 (Stack)
先入后出( LIFO,last in, first out),添加,删除时间复杂度为O(1),查询为O(N)
栈的基本操作
入栈,出栈 针对的都是栈顶元素。对应了 添加(入栈)和删除 (出栈)操作,时间复杂度都是O(1)。 因为栈元素是无序的,查询某个节点的时间复杂度为 O(N),即,需要遍历查询。