0
私はプログラミングを始めたと私は初心者の質問があります。だから私は、トライ木を持っていると私は複数のファイルから単語を大量に保存するためにそれを使用したいCプログラミングの無料トライ木
を。
1つのファイルからすべての単語をツリーに挿入したあとで、次のファイルのツリーを再利用できるように、ツリーのメモリを解放する必要があります。 私は自由を使ってルートを解放するべきですか?または、ツリーをたどってすべてのノードを1つずつ削除する必要がありますか?
ここにノードがあります。すべての単語をツリーに挿入できます。
struct node* insert(struct node *root,char *c){
int i=0;
struct node *temp=root;
int l=length(c);
while(i!=l){
int index=c[i]-'a';
if(temp->child[index]==NULL){
//New Node
struct node *n=(struct node *)malloc(sizeof(struct node));
n->parent=temp;
temp->child[index]=n;
temp->noempty=1;
}
//Node Exist
if(i!=l&&temp->leaf==1){temp->leaf=0;}
temp=temp->child[index];
i++;
}
if(temp->noempty==0){
temp->leaf=1;}
temp->isword=1;
return root;
};
あなたが求めていることは明確ではありません。 [mcve]を提供し、問題について具体的に記述してください。 – Olaf
各単一ノードを割り当てる場合は、各単一ノードの割り当てを解除(解放)する必要があります。 mallocを呼び出すたびに、ある時点で無料呼び出しが必要になります。 – Evert
トラバースとフリー。 –