linked-list - 为什么链表存储在堆中而不是堆栈中?
问题描述
我一直被教导将链表与堆一起使用,但我不明白为什么你不能只将它与堆栈一起使用?
解决方案
这个命题实际上是错误的;链表不仅存储在堆栈中,而且经常有一个链表作为运行时堆栈的一部分进行维护:这就是我们能够获得调用跟踪的方式。由于通过调用堆栈链接的帧指针链接列表,调用跟踪是可能的。
链表可以由节点组成,每个节点都位于不同执行上下文(如线程)的堆栈中。有一种操作系统技术,通过在该线程的堆栈上声明一个链表节点并将其直接排入等待队列,将任务置于等待队列中。
推荐阅读
- python - arduino,python,pyserial,串行问题错误
- c# - WPF 在选择开始下方放置 Intellisense(如 PopUp)
- c# - [FromQuery] 是否应用于复杂类型而不是传递 10 多个参数对于 GET 端点来说是个好主意?
- node.js - 反应创建问题
- ios - 将 Android 应用程序中的一项功能迁移到 iOS
- python-3.x - 如果将鼠标悬停在 Graphviz 标签上,它们会出现吗?
- swift - 如何为 watchOS 6 独立应用设计 Complications?
- sql - 如果两个表有一个相同的列来处理它们之间的关系,那么将列分开到不同的表中会更好吗?
- python - Removing the rows from dataframe till the actual column names are found
- php - How to display GIF's in laravel