0

次のことを行うことは有効ですか

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 を実行したいだけです。

4

1 に答える 1

0

rb_nextの実装を調査しました。正しい子の前に親を返します。したがって、この方法でリストをクリアすることは不可能です。

于 2012-06-09T07:17:31.873 に答える