【PAT甲级】1099ビルドAバイナリ検索ツリー(30分)

質問の意味:

Nの整数の正の入力(<= 100)、ノードNの入力ラインの数は、数を表すノードN-1サブノードに0についてそれぞれ含むN個の入力ラインに続きます。風雲出力レベルトラバーサルバイナリ・ソートツリー。

AAAAAcceptedコード:

1  の#define HAVE_STRUCT_TIMESPEC
 2の#include <ビット/ STDC ++ H>
 3  使用して 名前空間STDを、
4対< INTINT > [ 107 ]。
5  int型 B [ 107 ]。
6  INT CNT = 0 7つの INT ANS [ 107 ]。
8つの ボイド DFS(int型X){
 9      もし(x == - 1 10          リターン;
11の     DFS([X] 1次回)。
12     ANS [X] = B [++ CNT]。
13の     DFS([X] .second)。
14  }
 15  空隙 BFS(int型X){
 16      キュー< INT > Q。
17      q.push(X)。
18      ながら(!{q.empty())
 19          INT今= q.front()。
20          q.pop()。
21          であれば([今] 1次回=! - 1 22              q.push([今] 1次回)。
23          であれば([今] .second =! - 1 24              q.push([今] .second)。
25         もし(!今= x)の
 26              coutの<< "  " ;
27          COUT << ANS [今]。
28      }
 29  }
 30  INT メイン(){
 31の      IOS :: sync_with_stdio()。
32      cin.tie(NULL)。
33      cout.tie(NULL)。
34      INT N。
35      CIN >> N。
36      のためにINT iは= 1 ; iが<= N; ++ I){
 37          のint X、Y。
38          CIN >> X >> Y。
39          [I- 1 ] = {X、Y};
40      }
 41      のためにINT iは= 1 ; iが<= N; ++ I)
 42          CIN >> B [i]は、
43      ソート(B + 1、B + 1 + N)。
44の      DFS(0 )。
45の      BFS(0 )。
46      リターン 0 ;
47 }

 

おすすめ

転載: www.cnblogs.com/ldudxy/p/11964473.html