私はAVLツリーでいくつかのサンプルソースコードを読んでおり、実装の一部は次の関数です:
AvlTree MakeEmpty( AvlTree T )
{
if( T != NULL )
{
MakeEmpty( T->Left );
MakeEmpty( T->Right );
free( T );
}
return NULL;
}
メイン関数では、次のように使用されます。
int main()
{
AvlTree T;
T = MakeEmpty( NULL );
次に、メイン関数は AVL ツリーへの数値の挿入に移ります。私の主な質問は
a) MakeEmpty 関数の目的は何ですか? 再帰関数であることは理解していますが、その目的がわかりません。
b) この関数に NULL 値が渡されるのはなぜですか?
どうもありがとう!
また、AVLTree はこの構造体へのポインターです。
struct AvlNode
{
ElementType Element;
AvlTree Left;
AvlTree Right;
int Height;
};