編集: 問題: 2 つのノード間のノードを削除し、外側のノードを相互にリンクします。
いくつかの四分木と八分木を学習して構築し、細分割が本当に好きだったので、サーバーで細分割を使用することにしました。ただし、ノードを自分自身の中に配置するだけです。私の問題は、ノードが途中にある場合、前のノードを次のノードにリンクする方法がわからないことです。私はこれを正しくやっているのだろうかと思っています。以下は私のコードで、問題領域がどこにあるかをコメントします。どんな助けでも素晴らしいでしょう!
bool deleteNode ( SOCKET s , client_information_class *prev ) {
bool return_value = false;
if ( node[0]->client_socket != s ) {
if ( node[0]->node != NULL ) {
return_value = node[0]->deleteNode ( s , *node );
} else {
cout << endl << "Can not call deleteNode anymore ... Did not find the node to delete ... " << endl;
return return_value;
}
} else {
if ( node[0]->client_state == 1 )
InterlockedDecrement(&connection_count);
if ( node[0]->node != NULL ) { // there is a next node
client_information_class **next = node[0]->node;
if ( next[0]->node != NULL ) {
// problem area
cout << endl << "next[0]->node is not null" << endl;
prev->node = next[0]->node[0]->node; // ??? I know its wrong
} else {
// problem area
cout << endl << "next[0]->node is null" << endl;
prev->node = next[0]->node; // ??? I know its wrong
}
delete node;
} else { // its the last one
prev->node = NULL;
delete node;
}
InterlockedDecrement(&socket_count);
return_value = true;
}
return return_value;
}