顺序存储的二叉树的遍历C语言函数
时间: 2024-11-17 17:13:52 浏览: 42
顺序存储的二叉树遍历通常是指前序遍历(根-右-根)。由于二叉树节点在内存中是通过它们在数组中的索引来连接的,我们可以通过数组下标的方式来访问每个节点。
以下是简单的C语言函数示例,用于顺序存储的二叉树递归遍历:
```c
#include <stdio.h>
#define MAX_SIZE 100 // 假设树的最大深度不超过100
typedef struct Node {
int data; // 节点数据
int left, right; // 左、右孩子的索引
} Node;
// 二叉树节点数组
Node tree[MAX_SIZE];
// 递归遍历函数
void inorder(int index) {
if (index < MAX_SIZE) { // 检查是否越界
printf("%d ", tree[index].data); // 中序遍历:先左后根后右
inorder(tree[index].left); // 递归左子树
inorder(tree[index].right); // 递归右子树
}
}
void preorder(int index) {
if (index < MAX_SIZE) { // 检查是否越界
printf("%d ", tree[index].data); // 前序遍历:先根后左后右
preorder(tree[index].left);
preorder(tree[index].right);
}
}
void postorder(int index) {
if (index < MAX_SIZE) { // 检查是否越界
preorder(tree[index].left); // 后序遍历:先左后右后根
preorder(tree[index].right);
printf("%d ", tree[index].data);
}
}
int main() {
// 初始化树结构并设置节点值
// ...
// 调用对应的遍历函数
printf("Inorder traversal: ");
inorder(0);
printf("\nPreorder traversal: ");
preorder(0);
printf("\nPostorder traversal: ");
postorder(0);
return 0;
}
```
阅读全文
相关推荐


















