. (1) 패키지 my_basic.class_4; 2 . 3 공용 클래스 Code_08_CBTNode { . 4 // 낮은 복잡도 O의 완전한 바이너리 트리 노드의 수 (N) (5). 6 개. 공용 정적 클래스 노드 { 7. INT의 값] . 8 노드 좌측] . 9 노드 권, 10 . 11 공개 노드 ( INT의 값) { 12 인 이 본 .Value = ; 값 13이다 } 14 } 15 16 공중 정적 INT NODENUM (노드 헤드) { 17 일 경우 (헤드 == 널 ) { 18 반환 0 ; 19 } 20 리턴 기지국 (헤드 1 mostLeftLevel (헤드, 1 )); 21 } 22 개 23 공중 정적 INT의 기지국 (기지국 노드 INT의 레벨 의 INT H) { 24 일 경우 (레벨 == H) { 25 창 1 ; (26) } (27) 의 경우 (mostLeftLevel (node.right 레벨 + 1) ==의 H) { 28 에서 System.out.println ( "递归中右= H -"+ (1 << (H - 레벨) + BS (node.right 레벨 + 1 , H))); 29 창 (1 << (H - 레벨)) + BS (node.right 레벨 + 1 , 1H); 30 } 다른 { 31 에서 System.out.println ( "!递归中右= H"+ (1 << (H - 레벨 - 1) + BS (node.left 레벨 + 1 , H))); 32 창 (1 << (H - 레벨 - 1)) + BS (node.left 레벨 + 1 , 1H); 33 } 34 } 35 36 공중 정적 INT mostLeftLevel (노드 노드 INT의 레벨) { 37 동안 (노드! =널 (null) ) { 38 레벨 ++ ; 39 노드 = node.left; 40 } 41 리턴 레벨 - 1 ; 42 } 43 44 // 打印二叉树 45 공공 정적 무효 printTree (노드 헤드) { 46 에서 System.out.println ( "이진 트리" ); 47 printInOrder (헤드, 0, "H", 17 ); 48 에서 System.out.println (); 49 } 50 51 공공 정적 무효printInOrder (노드 헤드 INT의 높이 문자열에, INT LEN) { 52 의 경우 (헤드 == 널 ) { 53 창 ; 54 } 55 printInOrder (head.right 높이 + 1, "V" , LEN); 56 문자열로 발 = + + head.value 하는 단계; 57 INT lenm는 = val.length (); 58 INT lenL = (LEN - lenm는) / 2 ; 59 INT lenR = LEN - lenm는 - lenL; 60 발 = getSpace (lenL) + 발 + getSpace (lenR); (61) 에서 System.out.println (getSpace (높이 * LEN) + 발); 62 printInOrder (head.left 높이 + 1, "^" , LEN); 63 } 64 65 공중 정적 스트링 getSpace ( INT의 NUM) { 66 문자열 공간 = "" ; 67 = BUF StringBuffer를 신규 의 StringBuffer를 ( "" ); (68) 에 대한이 ( int로 ; 나는 <NUM 난 ++ I = 0 ) { 69 buf.append (공간); 70 } 71 리턴 buf.toString (); (72) } (73) 74 75 공공 정적 무효 메인 (문자열 []에 args) { 76 노드 머리 = 신규 노드 (1 ); 77 head.left = 새로운 기지국 (2 ); 78 head.right = 신규 노드 (3 ); 79 head.left.left = 새로운 기지국 (4 ); 80 head.left.right = 신규 노드 (5 ); 81 head.right.left = 새로운 기지국 (6 ); 82 에서 System.out.println (NODENUM (헤드)); 83 84 // printTree (헤드); 85 (86) } (87) }
완전한 이진 트리가 필요한 노드의 수를 찾을 것으로 알려진 : 시간 복잡도 O (N) 미만, N은 트리의 노드의 수입니다
추천
출처www.cnblogs.com/lihuazhu/p/10963885.html
추천
행