二叉树的层序遍历c
时间: 2023-10-30 13:15:04 浏览: 99
二叉树的层序遍历可以使用队列来实现。具体步骤如下:
1.首先将根节点入队;
2.当队列不为空时,依次取出队头元素,将其值存入结果数组中,并将其左右子节点(如果存在)入队;
3.重复步骤2,直到队列为空。
以下是C语言的二叉树层序遍历代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
void levelOrder(struct TreeNode* root) {
if (root == NULL) {
return;
}
struct TreeNode* queue[10000]; //定义队列
int front = 0, rear = 0; //队头和队尾指针
queue[rear++] = root; //根节点入队
while (front != rear) { //队列不为空时
struct TreeNode* node = queue[front++]; //取出队头元素
printf("%d ", node->val); //输出节点值
if (node->left != NULL) { //左子节点入队
queue[rear++] = node->left;
}
if (node->right != NULL) { //右子节点入队
queue[rear++] = node->right;
}
}
}
```
注意:上述代码中的队列实现方式是数组实现,不适用于大型二叉树。在实际应用中,可以使用链表或动态数组等数据结构来实现队列。
阅读全文