The original description of the k-d tree recognized that rebalancing techniques, used for building an AVL or red-black tree, are not applicable to a k-d tree, because these techniques involve cyclic exchange of tree nodes that violates the invariant of the k-d tree. For this reason, a static, balanced k-d tree is often built from all of the k-dimensional data en masse. However, it is possible to build a dynamic k-d tree that self-balances when necessary after insertion or deletion of each k-dimensional datum. This article describes insertion, deletion, and rebalancing algorithms for a dynamic, self-balancing k-d tree, and measures their performance.
翻译:k-d树的原始描述指出,用于构建AVL树或红黑树的再平衡技术不适用于k-d树,因为这些技术涉及树节点的循环交换,违反了k-d树的不变性。因此,静态平衡的k-d树通常需要一次性构建所有k维数据。然而,我们有可能构建一种动态k-d树,在每次插入或删除k维数据后能够进行必要的自平衡。本文描述了动态自平衡k-d树的插入、删除与再平衡算法,并对其性能进行了评估。