栈帧
栈帧随着方法的调用而创建,随着方法结束而销毁,存储了方法的局部变量信息
注意:栈中黑色代码不存在于栈帧中
如果递归调用没有终止,将会一直消耗栈空间,最终会导致栈内存溢出(Stack Overflow)
所以必须要有一个明确的结束递归的条件(也叫做边界条件、递归基)
栈 (Stack)
先入后出( LIFO,last in, first out),添加,删除时间复杂度为O(1),查询为O(N)
栈的基本操作
入栈,出栈 针对的都是栈顶元素。对应了 添加(入栈)和删除 (出栈)操作,时间复杂度都是O(1)。 因为栈元素是无序的,查询某个节点的时间复杂度为 O(N),即,需要遍历查询。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!