二叉树的基础操作总结
https://blog.youkuaiyun.com/hansionz/article/details/81908134
队列的基础操作总结
https://blog.youkuaiyun.com/hansionz/article/details/81636644
层次遍历
层次遍历,就是从上到下一层一层的遍历
例如:
思路:
代码实现
void BinaryTreeLevelOrder(BTNode* root)
{
Queue q;
//树为空,直接返回
if (root == NULL)
{
return;
}
QueueInit(&q);
//先将根节点入队
QueuePush(&q, root);
while (QueueEmpty(&q))
{
//出队保存队头并访问
BTNode* front = QueueFront(&q);
printf("%c", front->_data);
QueuePop(&q);
//将出队结点的左子树根入队
if (front->_left)
QueuePush(&q, front->_left);
//将出队结点的右子树根入队
if (front->_right)
QueuePush(&q, front->_right);
}
}