二叉树层次遍历 c语言程序算法
时间: 2024-07-12 13:00:34 浏览: 96
二叉树的层次遍历 c语言 算法 数据结构
5星 · 资源好评率100%
二叉树的层次遍历,也称为广度优先搜索(Breadth-First Search, BFS),通常使用队列来辅助实现。在C语言中,你可以用数组或链表作为队列。下面是基本的层次遍历算法步骤:
1. 创建一个队列,并将根节点(如果有)放入队列。
2. 当队列不为空时,执行以下操作:
a. 弹出队首元素,访问它。
b. 如果该节点有左子节点,将其加入队列。
c. 如果该节点有右子节点,也将其加入队列。
3. 重复步骤2,直到队列为空。
以下是简单的C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* left;
struct Node* right;
} Node;
void levelOrderTraversal(Node* root) {
if (root == NULL) return;
Node** queue = (Node**)malloc(sizeof(Node*) * (MAX_LEVEL + 1));
int level = 0;
queue[level++] = root;
while (level > 0) {
Node* current = queue;
printf("%d ", current->data);
queue = queue->left;
if (queue != NULL) {
queue[level++] = queue[0];
}
queue = queue->right;
if (queue != NULL) {
queue[level++] = queue;
}
level--;
if (level == 0) {
queue = NULL;
level = 0;
}
}
}
int main() {
// 假设你已经有了一个二叉树的创建和初始化方法
Node* myTree = ...;
levelOrderTraversal(myTree);
return 0;
}
```
阅读全文