如何使用C++创建一个空的数组二叉树,并增添新节点
时间: 2024-05-05 16:15:50 浏览: 95
要创建一个空的数组二叉树,可以使用静态数组或动态数组来实现。以下是使用静态数组的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
int tree[MAX_SIZE];
int size = 0;
void add_node(int value) {
if (size == MAX_SIZE) {
printf("Error: Tree is full\n");
return;
}
tree[size++] = value;
}
int get_left_child(int index) {
int left = 2 * index + 1;
if (left >= size) {
return -1;
}
return left;
}
int get_right_child(int index) {
int right = 2 * index + 2;
if (right >= size) {
return -1;
}
return right;
}
void print_tree() {
for (int i = 0; i < size; i++) {
printf("%d ", tree[i]);
}
printf("\n");
}
int main() {
add_node(1);
add_node(2);
add_node(3);
add_node(4);
add_node(5);
add_node(6);
add_node(7);
print_tree();
return 0;
}
```
在这个示例代码中,我们定义了一个静态数组`tree`和一个变量`size`来表示树的大小。`add_node`函数用于向数组中添加新节点,如果数组已满,则输出错误信息。`get_left_child`和`get_right_child`函数用于获取节点的左子节点和右子节点的索引。`print_tree`函数用于打印整个数组树。
在`main`函数中,我们添加了七个节点,并打印了整个数组树。可以看到,该数组树是一个完全二叉树,节点的顺序是按照层次遍历的顺序排列的。可以根据需要修改`add_node`函数和`print_tree`函数来实现其他操作,例如删除节点、查找节点等。
阅读全文