hdu3791バイナリ検索ツリー

トピックリンク:http://acm.hdu.edu.cn/showproblem.php?pid=3791

問題の意味:Nが与えられる(複数の基、nは0終端である)、nは文字列の文字列に、各文字列を構築バイナリ検索ツリーと同様に最初の文字列のnの配列によって決定されます。それぞれ一次決意に。

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
構造体のノード
{
    int型V;
    ノードは * *、左、右、
} * ルート。
ノード *ビルド(ノード*ルート、int型のV)
{
    もし(ルート== NULL)
    {
        ルート = 新しいノード()。
        ルート - > V = V;
        ルート - >左= root->右= NULL;
    }
    それ以外の 場合(V <= root-> V)root->左=ビルド(root-> 左、V);
     root->右=ビルド(root-> 右、V);
    リターンルート。
}

文字列ANS1、ANS2、S。 
 DFS(ノード* ルート)
{
    ANS1 + = to_stringに(root-> V)。
    もし(root->左= NULL!)DFS(root-> 左)。
    もし(!root->右= NULL)DFS(root-> 右)。
}
int型のmain()
{
    int型のn;
    一方、(CIN >> N && N)
    {
        ANS1 = "" ;
        ルート = NULL;
        cinを >> 秒; 
        以下のためにint型私は= 0 ; S [i]は、iは++)ルート=ビルド(ルートは、S [i]は- ' 0 ' );
        DFS(ルート)。
        ANS2 = ANS1。
            
        しばらく(N-- 
        {    
            ANS1 = "" ;
            ルート = NULL;
            cinを >> 秒; 
            以下のためにint型私は= 0 ; S [i]は、iは++)ルート=ビルド(ルートは、S [i]は- ' 0 ' );
            DFS(ルート)。
            
            もし(ANS1 == ANS2)はcout << " YES " << てendl;
            他の裁判所未満<< " NO " << てendl;
        } 
    }
    リターン 0 ;
} 

 

 

おすすめ

転載: www.cnblogs.com/myrtle/p/12029139.html