パッケージcom.demo.calculate。 輸入android.app.Activity。 輸入android.os.Bundle; 輸入android.view.View。 輸入com.demo.calculate.bean.BinaryTree。 輸入com.demo.calculate.bean.TreeNode。 パブリッククラスBinarySortATreectivityアクティビティを拡張{ @Overrideは、 ボイドのonCreate(バンドルsavedInstanceState){保護 super.onCreate(savedInstanceState)を、 setContentView(R.layout.activity_binary_sort_tree)。 findViewById(R.id.btn_binarySortTree).setOnClickListener(新しいView.OnClickListener(){ @Override ます。public void onClickの(ビューV){ createTree(); } }); } プライベートボイドcreateTree(){ BinaryTree binaryTree =新しいBinaryTree()。 INT [] ARR =新しいINT [] {7,3,5,9,12,45,23,10}。 以下のために(INT i = 0; I <arr.length; iは++){ binaryTree.add(新しいツリーノード(ARR [I]))。 } binaryTree.midShow()。 } }
パッケージcom.demo.calculate.bean。 パブリッククラスBinaryTree { プライベートint型の値。 民間のTreeNodeルート; 公共INTのgetValue(){ 戻り値。 } 公共ボイドのsetValue(int値){ this.value =値。 } 公共のTreeNode getRoot(){ 戻りルート。 } 公共ボイドsetRoot(ツリーノードのルート){ this.root =ルート; } frontShow(){公共ボイド (!ルート= NULL)であれば{ root.frontShow()。 } } パブリック無効midShow(){ 場合(ルート!= NULL){ root.midShow(); } } afterShow(){公共ボイド (!ルート= NULL)であれば{ root.afterShow()。 } } 公共のTreeNode frontSearch(int型I){ (ルート= nullが!){場合 root.frontSearch(i)を返します。 } はnullを返します。 } 公共ボイドdeleteNode(INT I){ 場合(!ルート= NULL){ root.deleteNode(I); } } 公共ボイド追加(ツリーノードのノード){ IF(ルート== NULL){ ルート=ノード。 }他{ root.add(ノード)。 } } }
com.demo.calculate.beanパッケージ; インポートandroid.util.Log; publicクラスツリーノード{ プライベートint値、 ツリーノードnodeLeftプライベート; プライベートツリーノードnodeRight; 公共ボイドsetNodeLeft(ツリーノードnodeLeft){ this.nodeLeft = nodeLeft; } 公共ボイドsetNodeRight (ツリーノードnodeRight){ this.nodeRight = nodeRight; } 公共のTreeNode(int値){ this.value =値; } 公共ボイドmidShow(){ / ** *。5. 4. 3. 6。7 1 * 1 1左点2右ノードノードmidShow 3()である。 * 2 2点が左側のノードが正しいノード4であるmidShowれる5(); / * (!nodeLeft = NULL){IF ; nodeLeft.midShow() } ; Log.i( "タグ"、値+ "") 4第一時間値である//ルートノード2。 {IF(nodeRight = NULL!) nodeRight.midShow(); } } 公共ボイド追加(ツリーノードのノード){ IF(ノード== NULL){ リターン; } //ノード挿入する決意値は、左のように、次に小さいと、現在のノードの値より小さくありません子ノード IF(node.value <値){ IF(nodeLeft == NULL){ nodeLeft =ノード; }そうでなければ{ nodeLeft.add(ノード); } 挿入する//決意値ノードが現在のノードの値の比ではありません大小、次にように右の子ノードへ }他{ IF(nodeRight == NULL){ nodeRight =ノード。 }他{ nodeRight.add(ノード)。 } } } }