0

私はツリーを持っています。各ノードには配列の子ノード (Node *children_nodes) と、名前 (char *node_name) および親 (Node *parent) が含まれています。これらはそれぞれ動的です。*children_nodes 配列から子ノードを削除し、その名前と子に割り当てられたメモリを解放し (子のない子を削除することにしましょう)、リストの最後の子の場所をその場所に移動したいと考えています。削除したばかりのものです。最後のノードがあった場所を使用したい場合、最後のノードを変更せずにこれを行うにはどうすればよいですか。

例 - 3 つの子を持つノードがあり、children_nodes[0] の割り当てられたメモリを解放し、children_nodes[2] をその場所に置き、できれば children_nodes[0] が children_nodes[2] のノードを指すようにして、ノード自体をいじらずに children_nodes[2] を何も指さないようにします。

4

1 に答える 1

0

コードを見ずに確実に判断するのは難しいですが、 が必要だと思うNode** children_nodesので、次のようにするだけです。

free(children_nodes[0]);
children_nodes[0] = children_nodes[2];
children_nodes[2] = 0;
于 2012-04-04T19:29:21.130 に答える