社区
C语言
帖子详情
帧指针 和栈指针到底是什么,有什么联系吗,拜托了!
tangwuquan
2006-10-01 02:12:08
在函数调用和返回的时候会涉及到帧指针和栈指针但谁能给我说的更清楚一点,
感谢, 感谢!!!!
...全文
2331
5
打赏
收藏
帧指针 和栈指针到底是什么,有什么联系吗,拜托了!
在函数调用和返回的时候会涉及到帧指针和栈指针但谁能给我说的更清楚一点, 感谢, 感谢!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
legumen
2006-10-01
打赏
举报
回复
1
FP帧指针指向帧头
SP栈指针指向栈顶
大部分现代计算机系统使用栈来给进程传递参数并且存储局部变量。栈是一种在进程映象内存的高地址内的后进先出(LIFO)的缓冲区。当程序调用一个函数时一个新的“栈帧”会被创建。这个栈帧包含着传递给函数的各种参数和一些动态的局部变量空间。“栈指针”记录着当前 栈顶的位置。由于栈指针的值会因为新变量的压入栈顶而经常的变化,许多实现也提供了一种"帧指针"来定位在栈帧的起始位置,以便局部变量可以更容易的被访问。
简单的说就是帧指针可用于子例程参数传输,而栈指针则可用于存储子程序调用的返回地址。
可以看一下“计算机系统”
sunman1982
2006-10-01
打赏
举报
回复
http://www.newsmth.net/pc/pccon.php?id=6593&nid=248537
u94586813
2006-10-01
打赏
举报
回复
长见识了~~
lhbgyl
2006-10-01
打赏
举报
回复
你可以看《深入理解计算机系统》第三章,讲的很详细
【困难】力扣算法题解析LeetCode124:二叉树中的最大路径和
题目要求计算二叉树中的最大路径和,路径定义为节点序列,节点至多出现一次。通过深度优先搜索(DFS)和动态规划思想解决: 递归遍历:计算左右子树的贡献值(若为负则舍弃)。 更新最大值:当前节点作为路径转折点时的和(节点值 + 左贡献 + 右贡献)。 返回单边最大和:供父节点拼接路径。 时间复杂度O(N),空间复杂度O(N)(递归
栈
)。 代码实现:维护全局变量maxSum,递归函数返回单边路径和,动态更新最大值。
LeetCode-124、二叉树中的最大路径和-困难
LeetCode-124、二叉树中的最大路径和-困难 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 输入: [1,2,3] 1 / \ 2 3 输出: 6 示例2: 输入: [-10,9,20,null,null,15,7]...
Leetcode—124. 二叉树中的最大路径和【困难】
运行结果 运行结果 之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!
【二叉树】Leetcode 124. 二叉树中的最大路径和【困难】
空间复杂度:O(H),其中 H 是二叉树的高度,因为递归调用
栈
的深度取决于二叉树的高度。时间复杂度:O(N),其中 N 是二叉树中节点的数量,因为我们需要遍历每个节点。:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6。给你一个二叉树的根节点 root ,返回其。是路径中各节点值的总和。
Leetcode 124. 二叉树中的最大路径和 (困难)
好了,分析上述6种情况, 只有 2,3,4 可以向上累加,而1,5,6不可以累加(这个很好想,情况1向上累加的话,必然出现分叉,情况5和6直接就跟上面的树枝断开的,没法累加),所以我们找一个全局变量存储 1,5,6这三种不可累加的最大值, 另一方面咱们用遍历树的方法求2,3,4这三种可以累加的情况。路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径 至少包含一个 节点,且不一定经过根节点。解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6。.
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章