如何在 Java 中创建完整的二叉树
How to create a Complete Binary Tree in Java
什么是完全二叉树的简单实现。这些值不会影响它们在树中的设置顺序。下面列出的是理想的。
A
/ \
B C
/ \ / \
D E F G
如何用队列这样的方式编码?
您的 BST 应如下所示。我将跳过方法主体 ofc。您可以有两个不同的 classes - 用于根和节点。我将向您展示一个 class 实现的模式。
public class BinarySearchTreeNode<T extends Comparable<T>>{
private T value;
private BinarySearchTreeNode<T> left;
private BinarySearchTreeNode<T> right;
public BinarySearchTreeNode<T> insert(T t) {
//your implementation here
}
public BinarySearchTreeNode<T> find(T t) {
//your implementation here
}
public BinarySearchTreeNode<T> delete(T t) {
//your implementation here
}
public void display(){
//your implementation here
}
//getters, setters
}
您将需要:
- 关于Java Generics,
的一些知识
- 关于
Comparable
、 的基本知识
- Cormen 的算法介绍或 similar 对不起,它甚至可能链接到维基百科。
为了您的方便,我附上了指向 Java 文档和维基百科的链接。以防万一您仍然无法编写 BST,只需在评论中要求澄清即可。请足够具体,所以我知道你的疑问是什么。
什么是完全二叉树的简单实现。这些值不会影响它们在树中的设置顺序。下面列出的是理想的。
A
/ \
B C
/ \ / \
D E F G
如何用队列这样的方式编码?
您的 BST 应如下所示。我将跳过方法主体 ofc。您可以有两个不同的 classes - 用于根和节点。我将向您展示一个 class 实现的模式。
public class BinarySearchTreeNode<T extends Comparable<T>>{
private T value;
private BinarySearchTreeNode<T> left;
private BinarySearchTreeNode<T> right;
public BinarySearchTreeNode<T> insert(T t) {
//your implementation here
}
public BinarySearchTreeNode<T> find(T t) {
//your implementation here
}
public BinarySearchTreeNode<T> delete(T t) {
//your implementation here
}
public void display(){
//your implementation here
}
//getters, setters
}
您将需要:
- 关于Java Generics, 的一些知识
- 关于
Comparable
、 的基本知识
- Cormen 的算法介绍或 similar 对不起,它甚至可能链接到维基百科。
为了您的方便,我附上了指向 Java 文档和维基百科的链接。以防万一您仍然无法编写 BST,只需在评论中要求澄清即可。请足够具体,所以我知道你的疑问是什么。