二叉树顺序存储结构实现 c/c++实现
时间: 2023-12-01 13:32:25 浏览: 121
二叉树的顺序存储结构
4星 · 用户满意度95%
二叉树顺序存储结构可以使用数组来实现,具体实现如下:
```c
#include <stdio.h>
#define MAX_SIZE 100
// 定义二叉树结点结构体
typedef struct TreeNode {
char data;
} TreeNode;
// 创建二叉树
void createBinaryTree(TreeNode* tree, char* array, int size) {
for (int i = 0; i < size; i++) {
tree[i].data = array[i];
}
}
// 获取二叉树根结点的值
char getRoot(TreeNode* tree) {
return tree[0].data;
}
// 获取指定结点的左子结点的值
char getLeftChild(TreeNode* tree, int index) {
return tree[2 * index + 1].data;
}
// 获取指定结点的右子结点的值
char getRightChild(TreeNode* tree, int index) {
return tree[2 * index + 2].data;
}
int main() {
// 测试用例
char array[MAX_SIZE] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
int size = 7;
// 创建二叉树
TreeNode tree[MAX_SIZE];
createBinaryTree(tree, array, size);
// 获取根结点的值
char root = getRoot(tree);
printf("根结点的值为: %c\n", root);
// 获取左子结点的值
char leftChild = getLeftChild(tree, 0);
printf("根结点的左子结点的值为: %c\n", leftChild);
// 获取右子结点的值
char rightChild = getRightChild(tree, 0);
printf("根结点的右子结点的值为: %c\n", rightChild);
return 0;
}
```
阅读全文