Java基于二叉查找树实现排序功能示例
本文实例讲述了Java基于二叉查找树实现排序功能。分享给大家供大家参考,具体如下:
/** *无论排序的对象是什么,都要实现Comparable接口 * *@param*/ publicclassBinaryNode >{ privatestaticintindex=0;//排序下标 privatestaticintlen=0;//最大数组长度 privateTt;//根节点 privateBinaryNode left;//左侧叶子节点 privateBinaryNode right;//右侧叶子节点 publicBinaryNode(Tt){ len++; this.t=t; } /** *往一颗书中插入值,在本质上都通过根节点一层层的判断。 *如果根节点不存在则新建节点 *如果根节点存在则判断应该在左侧还是在右侧插入,通常是左小右大 * *@paramt */ publicvoidinsert(Tt){ if(this.t.compareTo(t)>0){ if(this.left==null){ BinaryNode node=newBinaryNode (t); this.left=node; }else{ this.left.insert(t); } }else{ if(this.right==null){ BinaryNode node=newBinaryNode (t); this.right=node; }else{ this.right.insert(t); } } } /** *调用私有方法 * *@return */ publicComparable>[]order(){ Comparable>[]os=newComparable[len]; order(this,os); returnos; } /** *利用中序遍历查找整颗树 * *@parambn *@paramos */ privatevoidorder(BinaryNode bn,Comparable>[]os){ if(bn.left==null){ os[index++]=bn.t; }else{ order(bn.left,os); os[index++]=bn.t; } if(bn.right==null){ return; }else{ order(bn.right,os); } } }
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。