免責事項:いくつかの悪い習慣は、この次のコードのKdツリー欠陥K最近傍
こんにちはであり、私はちょうど正しく私のKDツリーK最近傍探索をフォーマットする方法についていくつかの質問を持っていました。私の関数の例を次に示します。
void nearest_neighbor(Node *T, int K) {
if (T == NULL) return;
nearest_neighbor(T->left, K);
//do stuff find dist etc
if(?)nearest_neighbor(T->right, K);
}
このコードは混乱するので、私はそれを説明しようとします。私の関数は、k値とノードTだけをとります。私がしようとしているのは、現在のノードと構造内の他のすべての値との距離を見つけることです。これらはすべて動作します、私が持っている問題は、いつ、どのように再帰呼び出しnearest_neighbor(T-> left/T-> right、K)を呼び出すかを理解することです。私は右辺へのコールを切り取ることを意図していますが、これを行う方法がわかりません。これは、多次元KDツリーです。より良い例へのガイダンスは非常に高く評価されます。