二叉树的基础操作总结
https://blog.csdn.net/hansionz/article/details/81908134
队列的基础操作总结
https://blog.csdn.net/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);
    }
}
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐