Closed MoonChasing closed 3 years ago
bplus_tree.c
只负责删除一个结点的时候才会释放它(non_leaf_delete
and leaf_delete
),我在demo里面并没有释放所有结点。你可以用范围删除所有结点。
感谢。看代码可以知道,只要我们删除了所有的叶子结点,那么B+树就自然的已经销毁了。 但我觉得在 deinit 接口中,最好还是能把所有的结点删除。 想象一种使用情景就是我在程序的一个步骤中需要使用 B+ 树,后面就无需用到了,用户在使用完后也没有逐个删除叶子结点。
in-memory 版本在析构树时内存泄露,未对叶子结点和非叶子结点进行析构。