C语言二叉树层序遍历
时间: 2023-11-23 16:53:57 浏览: 100
C语言中二叉树的层序遍历是一种广度优先搜索算法,它按照从上到下、从左到右的顺序遍历二叉树的每个节点。具体实现可以使用队列来辅助实现。具体步骤如下:
1. 首先将根节点入队。
2. 当队列不为空时,取出队首元素,输出该节点的值,并将其左右子节点(如果有)入队。
3. 重复步骤2,直到队列为空。
下面是一个示例代码,其中levelwise函数实现了二叉树的层序遍历:
```
void levelwise(BTnodePtr root) {
if (root == NULL) {
return;
}
QueuePtr queue = (QueuePtr)malloc(sizeof(struct BTNodePtrQueue));
queue->nodePtrs = (BTnodePtr*)malloc(sizeof(BTnodePtr) * MAX_QUEUE_SIZE);
queue->front = 0;
queue->rear = -1;
enqueue(queue, root);
while (!isEmpty(queue)) {
BTnodePtr node = dequeue(queue);
printf("%c ", node->element);
if (node->left != NULL) {
enqueue(queue, node->left);
}
if (node->right != NULL) {
enqueue(queue, node->right);
}
}
free(queue->nodePtrs);
free(queue);
}
```
阅读全文