链表的缺点是对于 malloc() 一个块,内存分配器必须搜索链表,然后如果找到该地址,则返回它..那么为什么不使用二叉树来减少搜索时间呢?
NVIDIA 提出的问题之一
http://www.careercup.com/question?id=9765724
找到一篇相关文章讨论它here
最佳答案
如果我理解正确,请查看此链接:
Time complexity of memory allocation
堆分配可以通过将空闲内存表示为链表来完成,但是任何相当复杂的内存管理器都会使用更快的东西,例如我发布的问题的答案中提到的 AVL 树。甚至还有一个 O(1) 解决方案,称为 TLSF(两级隔离拟合),也在答案中提到。
关于memory-management - 在动态存储分配和释放期间使用循环链表作为 "free list"v/s 平衡二叉搜索树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9611867/