Java中如何构建一个二叉搜索树实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4738个文字,预计阅读时间需要19分钟。
二叉搜索树结合了无序链表插入便捷和有序数组查找快速的特点,较为高效地实现了有序符号表。如图所示,展示了二叉搜索树的结构特点(图片来自《算法第4版》):
[图片]
二叉搜索树二叉搜索树结合了无序链表插入便捷和有序数组二分查找快速的特点,较为高效地实现了有序符号表。下图显示了二叉搜索树的结构特点(图片来自《算法第四版》):
可以看到每个父节点下都可以连着两个子节点,键写在节点上,其中左边的子节点的键小于父节点的键,右节点的键大于父节点的键。每个父节点及其后代节点组成了一颗子树,根节点及其后代节点则组成了完整的二叉搜索树。
在代码层面看来,就是每个节点对象中包含另外两个子节点的指针,同时包含一些要用到的数据,比如键值对和方便后续操作的整课子树的节点数量。
private class Node {
int N = 1;
K key;
V value;
Node left;
Node right;
public Node(K key, V value) {
this.key = key;
this.value = value;
}
}
上述代码实现了一个节点类,这个类是二叉搜索树类 BinarySearchTree 的内部类,使用者无需知道这个节点类的存在,所以访问权限声明为 private。
本文共计4738个文字,预计阅读时间需要19分钟。
二叉搜索树结合了无序链表插入便捷和有序数组查找快速的特点,较为高效地实现了有序符号表。如图所示,展示了二叉搜索树的结构特点(图片来自《算法第4版》):
[图片]
二叉搜索树二叉搜索树结合了无序链表插入便捷和有序数组二分查找快速的特点,较为高效地实现了有序符号表。下图显示了二叉搜索树的结构特点(图片来自《算法第四版》):
可以看到每个父节点下都可以连着两个子节点,键写在节点上,其中左边的子节点的键小于父节点的键,右节点的键大于父节点的键。每个父节点及其后代节点组成了一颗子树,根节点及其后代节点则组成了完整的二叉搜索树。
在代码层面看来,就是每个节点对象中包含另外两个子节点的指针,同时包含一些要用到的数据,比如键值对和方便后续操作的整课子树的节点数量。
private class Node {
int N = 1;
K key;
V value;
Node left;
Node right;
public Node(K key, V value) {
this.key = key;
this.value = value;
}
}
上述代码实现了一个节点类,这个类是二叉搜索树类 BinarySearchTree 的内部类,使用者无需知道这个节点类的存在,所以访问权限声明为 private。

