バイナリツリー検索

1.通常の再帰

1      ツリーノード* searchBST(ツリーノード*根、INT ヴァル){
 2       であれば(!ルート)
 3           リターンnullptr。
4       もし(ヴァル> root-> ヴァル)
 5       {
 6           ルート= searchBST(root-> 右、ヴァル)。
7       }
 8       そう であれば(ヴァル<root-> ヴァル)
 9       {
 10           ルート= searchBST(root-> 左、ヴァル)。
11       }
 12           リターンルート。
13       }

注文再帰2.

1   ツリーノード* searchBST(ツリーノード*根、INT ヴァル){
 2       であれば(!ルート)
 3           リターンnullptr。
4       ツリーノード* RES = searchBST(root-> 左、ヴァル)。
5       なら(RES)
 6つの          リターンRES。
7       他に あれば(root->ヴァル> val)で
 8           リターンnullptr;
9       他に あれば(root->ヴァル== val)で
 10           リターンルート。
11       ツリーノード* RES = searchBST(root-> 右、ヴァル)。
12       リターンのres;
13   }

3.反復

1ツリーノード* searchBST(ツリーノード*根、INT ヴァル){
 2      ながら(ルート)
 3      {
 4          もし(root->ヴァル> val)で
 5              ルート= root-> 左。
6          そう であれば(root->ヴァル< val)で
 7              ルート= root-> 右。
8          他の
9              リターンルート。
10      }
 11      リターンルート。
12 }

 

おすすめ

転載: www.cnblogs.com/zouma/p/11566861.html