首页 > 代码库 > 二分查找树

二分查找树

下面是二分查找树的具体实现

BinarySearchTree类架构

 

 1 /* 2  * 简化的二叉查找树,节点只是int类型 3  */ 4 public class BinarySearchTree { 5     private static class BinaryNode { //private声明的类只能定义为内部类 6     //定义树的节点类型 7     } 8      9     private BinaryNode root; //根节点,定义为私有10     11     public BinarySearchTree() {12         root = null;13     }14     15     public boolean isEmpty() { //判断树是否为空16         return root == null;17     }18     19     public void makeEmpty() { //把树置为空20         root = null;21     }22     23     public boolean contains(int x, BinaryNode t) {} //查找24     25     public BinaryNode findMin(BinaryNode t) {} //最大值26     27     public BinaryNode findMax(BinaryNode t) {} //最小值28     29     public BinaryNode insert(int x, BinaryNode t) {} //插入30     31     public BinaryNode remove(int x, BinaryNode t) {} //删除32     33     public void printTree(BinaryNode t) {} //打印二叉树34 }

 

定义树的节点类型

 1     private static class BinaryNode { //private声明的类只能定义为内部类 2         public BinaryNode(int ele) { 3             this(ele, null, null); //引用构造函数 4         } 5         public BinaryNode(int ele, BinaryNode lt, BinaryNode rt) { 6             element = ele; 7             left = lt; 8             right = rt; 9         }10         11         int element; //先定义为一个简单的整型数据12         BinaryNode left; //左孩子13         BinaryNode right; //右孩子        14     }

 

 

参考

数据结构与算法分析_Java语言描述(第二版)

二分查找树