求取二叉树层树c语言
时间: 2023-11-23 08:06:15 浏览: 62
以下是求取二叉树层树的C语言代码:
```c
typedef struct BinTreeNode {
TreeValType data; // 数据域
struct BinTreeNode *lchild, *rchild; // 左右孩子
struct BinTreeNode *parent;
} BTNode, *BiTree;
void LevelOrder(BiTree T) {
if (T == NULL) {
return;
}
queue<BiTree> q;
q.push(T);
while (!q.empty()) {
BiTree p = q.front();
q.pop();
printf("%d ", p->data);
if (p->lchild != NULL) {
q.push(p->lchild);
}
if (p->rchild != NULL) {
q.push(p->rchild);
}
}
}
```
该代码使用了队列来实现二叉树的层序遍历,具体实现过程如下:
1. 如果二叉树为空,则直接返回。
2. 创建一个队列,并将根节点入队。
3. 当队列不为空时,取出队首元素,并输出该节点的值。
4. 如果该节点有左孩子,则将左孩子入队。
5. 如果该节点有右孩子,则将右孩子入队。
6. 重复步骤3-5,直到队列为空。
阅读全文