c++实现层序遍历二叉树
时间: 2023-06-11 14:04:48 浏览: 125
层序遍历二叉树可以使用队列实现,具体步骤如下:
1. 首先将根节点入队列。
2. 随后,从队列中取出一个节点,访问该节点。
3. 将该节点的左右子节点(如果有的话)入队列。
4. 重复步骤 2 和 3,直到队列为空。
下面是使用 C 代码实现层序遍历二叉树的示例:
```c
// 层序遍历二叉树
void levelOrderTraversal(Node* root) {
if (root == NULL) {
return;
}
// 创建一个队列,并将根节点入队列
Queue* queue = createQueue();
enqueue(queue, root);
// 循环处理队列中的节点,直到队列为空
while (!isEmpty(queue)) {
// 取出队头节点,并访问该节点
Node* node = dequeue(queue);
printf("%d ", node->val);
// 将左右子节点入队列(如果有的话)
if (node->left != NULL) {
enqueue(queue, node->left);
}
if (node->right != NULL) {
enqueue(queue, node->right);
}
}
// 销毁队列
destroyQueue(queue);
}
```
需要注意的一点是,这里的队列和节点都需要自己实现数据结构。
阅读全文