帮我基于Java写一个完全二叉树,底层用数组实现
时间: 2023-06-02 16:06:43 浏览: 99
好的,我可以帮您实现一个基于Java的完全二叉树,底层使用数组实现。以下是示例代码:
```java
public class CompleteBinaryTree {
private int[] tree; // 存放完全二叉树的数组
private int size; // 完全二叉树的大小
/**
* 构造函数,传入完全二叉树的大小
*/
public CompleteBinaryTree(int size) {
tree = new int[size+1]; // 数组下标从1开始,所以长度要+1
this.size = size;
}
/**
* 将指定元素插入到完全二叉树底层的数组中
*/
public void insert(int element) {
if (isFull()) {
throw new RuntimeException("Binary tree is full!");
}
tree[++size] = element;
}
/**
* 判断完全二叉树是否已满
*/
public boolean isFull() {
return size >= tree.length - 1;
}
/**
* 获取完全二叉树的大小
*/
public int getSize() {
return size;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= size; i++) {
sb.append(tree[i]).append(" ");
}
return sb.toString();
}
}
```
上述代码中,我们定义了一个 `CompleteBinaryTree` 类,其中包含了一些方法,如 `insert`、`isFull`、`getSize` 和 `toString`。
其中, `insert` 方法用于在完全二叉树底层的数组中插入指定元素; `isFull` 方法用于判断完全二叉树是否已满; `getSize` 方法用于获取完全二叉树的大小; `toString` 方法用于将完全二叉树底层的数组转化为字符串形式。
希望这可以帮助您。如果您有其他问题或需要进一步的帮助,请随时告诉我。
阅读全文