本文小编为大家详细介绍“Java怎么实现搜索算法二叉搜索树”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现搜索算法二叉搜索树”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、二叉搜索树插入元素

/***user:ypc;*date:2021-05-18;*time:15:09;*/classNode{intval;Nodeleft;Noderight;Node(intval){this.val=val;}}publicvoidinsert(intkey){Nodenode=newNode(key);if(this.root==null){root=node;}Nodecur=root;Nodeparent=null;while(cur!=null){if(cur.val==key){//System.out.println("元素已经存在");return;}elseif(cur.val>key){parent=cur;cur=cur.left;}else{parent=cur;cur=cur.right;}}if(key>parent.val){parent.right=node;}else{parent.left=node;}}二、搜索指定节点

publicbooleansearch(intkey){Nodecur=root;while(cur!=null){if(cur.val==key){returntrue;}elseif(cur.val>key){cur=cur.left;}else{cur=cur.right;}}returnfalse;}三、删除节点方式一

publicvoidremovenode1(Nodeparent,Nodecur){if(cur.left==null){if(cur==root){root=cur.right;}elseif(cur==parent.right){parent.left=cur.right;}else{parent.right=cur.right;}}elseif(cur.right==null){if(cur==root){root.left=cur;}elseif(cur==parent.right){parent.right=cur.left;}else{parent.left=cur.left;}}else{Nodetp=cur;Nodet=cur.right;while(t.left!=null){tp=t;t=t.left;}if(tp.left==t){cur.val=t.val;tp.left=t.right;}if(tp.right==t){cur.val=t.val;tp.right=t.right;}}}publicvoidremove(intkey){Nodecur=root;Nodeparent=null;while(cur!=null){if(cur.val==key){removenode1(parent,cur);//removenode2(parent,cur);return;}elseif(key>cur.val){parent=cur;cur=cur.right;}else{parent=cur;cur=cur.left;}}}四、删除节点方式二

publicvoidremovenode2(Nodeparent,Nodecur){if(cur.left==null){if(cur==root){root=cur.right;}elseif(cur==parent.right){parent.left=cur.right;}else{parent.right=cur.right;}}elseif(cur.right==null){if(cur==root){root.left=cur;}elseif(cur==parent.right){parent.right=cur.left;}else{parent.left=cur.left;}}else{Nodetp=cur;Nodet=cur.left;while(t.right!=null){tp=t;t=t.right;}if(tp.right==t){cur.val=t.val;tp.right=t.left;}if(tp.left==t){cur.val=t.val;tp.left=t.left;}}}五、运行结果

/***user:ypc;*date:2021-05-18;*time:15:09;*/classTestBinarySearchTree{publicstaticvoidmain(String[]args){inta[]={5,3,4,1,7,8,2,6,0,9};BinarySearchTreebinarySearchTree=newBinarySearchTree();for(inti=0;i<a.length;i++){binarySearchTree.insert(a[i]);}binarySearchTree.inOrderTree(binarySearchTree.root);System.out.println();binarySearchTree.preOrderTree(binarySearchTree.root);binarySearchTree.remove(7);System.out.println();System.out.println("方法一删除后");binarySearchTree.inOrderTree(binarySearchTree.root);System.out.println();binarySearchTree.preOrderTree(binarySearchTree.root);}}

读到这里,这篇“Java怎么实现搜索算法二叉搜索树”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。