这篇文章主要介绍了java中二叉排序树的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
创新互联公司专注于网站建设|网站维护公司|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都门帘等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身开发品质网站。
二叉排序树:BST: (Binary Sort(Search) Tree), 对于二叉排序树的 任何一个非叶子节点,要求 左子节点的值比当前节点的值小, 右子节点的值比当前节点的值大。
特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点。
比如针对前面的数据{7, 3, 10, 12, 5, 1, 9} ,对应的二叉排序树为 :
代码实现:
package tree; public class BinarySortTreeDemo { public static void main(String[] args) { int[] arr= {7,3,10,12,5,1,9,2}; BinarySortTree binarySortTree = new BinarySortTree(); for (int i = 0; i < arr.length; i++) { binarySortTree.add(new Node(arr[i])); } binarySortTree.infixOrder(); } } //创建二叉树 class BinarySortTree{ private Node root; public Node getRoot() { return root; } public void add(Node node) { if(root == null) { this.root = node;//如果root为空直接让root指向node }else { this.root.add(node); } } // 中序遍历 public void infixOrder() { if(root!=null) { root.infixOrder(); }else { System.out.println("二叉树为空,不能遍历"); } } } //创建结点 class Node{ private int value; private Node left; private Node right; public Node(int value) { this.value = value; } @Override public String toString() { return "Node [value=" + value + "]"; } //添加结点的方法,递归的形式添加结点,注意需要满足二叉树的要求 public void add(Node node) { if(node==null) { return; } //判断传入的结点的值,和当前子树的根节点的值比较 if(node.value感谢你能够认真阅读完这篇文章,希望小编分享的“java中二叉排序树的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
当前标题:java中二叉排序树的示例分析
网站路径:http://jkwzsj.com/article/gpgphe.html