기금넷 공식사이트 - 복권 조회 - 자바 우선 순위를 사용하여 빈 트리를 나타내는 이진 트리 # 를 만듭니다. 예를 들어 ABC # # de # g # # f # # 를 입력하여 ABCDEGF 를 먼저 내보냅니다. 내가 쓴 프로그램은 출력할 수 없다.
자바 우선 순위를 사용하여 빈 트리를 나타내는 이진 트리 # 를 만듭니다. 예를 들어 ABC # # de # g # # f # # 를 입력하여 ABCDEGF 를 먼저 내보냅니다. 내가 쓴 프로그램은 출력할 수 없다.
이 표기법은 그다지 일반적이지는 않지만, 나는 너의 소스 코드에 따라 수정해서 네가 원하는 결과를 얻었다.
구조는 기본적으로 동일하며 실현 가능성의 기본 얼굴은 완전히 다릅니다.
수동 입력 대신 문자열을 사용합니다. 만약 네가 수작업으로 입력하는 것을 좋아한다면, 너는 나의 주석을 떨어뜨려 너 자신의 것으로 쓸 수 있다 ...
수정된 코드는 다음과 같습니다.
Java.util. *;
클래스 노드 {
노드 왼쪽
노드 오른쪽 이동
Char 데이터 //노드 데이터
인쇄 무효화 () {
System.out.println (data+"");
}
공용 노드 () {
This.left = null
이것. 오른쪽 = 비어 있음 :
}
공용 노드 (문자 데이터) {
This.left = null
이것. 오른쪽 = 비어 있음 :
This.data = data
}
}
클래스 b 트리 {
정적 노드 루트 = 새 노드 (); //루트 노드에 공간 할당
정적 charch []; //입력 문자열
정적 int I = 0;;
정적 노드 CreateTree()// 먼저 이진 트리를 만듭니다.
{
노드 노드 = null
If (ch[i] == '#') {
Node = null
I++;+;
} 그렇지 않으면 {
노드 = 새 노드 ();
Node.data = ch [I];
I++;+;
Node.left = createtree ();
노드. Right = createtree ();
}
노드로 돌아가기
}
정적 공용 void preorder(node node)// 먼저 다이트리를 통과합니다.
{
다음 경우 (노드! = null) {
Node.print ();
Preorder (node.left);
가입 (노드). 예);
} 그렇지 않으면 {
System.out.println ("트리 노드가 비어 있음");
}
}
}
공용 클래스 트리 {
공용 정적 void main(String args[]) {
스캐너 리더 = 새 스캐너 (system.in);
Btree.ch = newchar [16];
Btree.ch [0] =' a';
//입력 문자 배열을 읽고 * 로 끝납니다.
BTree.ch = "ABC##DE#G##F### # ". Tochararray ();
///for(int I = 0;; (BTree.ch[i] = reader.next (). 차트 (0))! =' *'; I++){}
BTree.root = BTree 입니다. Createtree ();
Btree.preorder (btree.root);
}
}