Linux 内核 rb 树

标签 linux memory tree kernel malloc

执行以下操作是否有效

struct foo {
int data;
struct rb_node node
};
struct rb_root root;
/* Filling tree with kalloc'ed foo nodes */
struct rb_node *node=rb_first(&root);
while (node)
{
 struct rb_node *next=rb_next(node);
 kfree(node);
 node = next;
}
root=RB_ROOT;

事实上,我只想以线性时间同时执行 foreach 和clear。

最佳答案

探索了 rb_next 实现。它先返回父项,然后再返回右子项。 所以,用这种方式清除列表是不可能的。

关于Linux 内核 rb 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10958906/

相关文章:

java - 如何在 bash 中动态设置 java 内存大小?

python 基于左括号和右括号的逗号分隔字符串的目录结构显示

c - 用C解释代码

C/Unix : How to extract the bits from st_mode?

memory - 硬件和编译器如何处理跨入不可执行页面的 x86 指令?

c++ - 我可以通过 for_each <algorithm> 在 C++ 中的指针 vector 上调用 `delete` 吗?

java - JSoup 在 Linux 上执行方法慢

linux - 如何使用 shell 脚本根据数字名称值删除目录?

data-structures - 为什么线段树是用数组而不是BT来实现

Haskell - 如何基于二叉树的文件夹创建 mapTree 函数?