树中的BFS(级别顺序遍历)

时间:2017-06-03 03:22:03

标签: c++ tree breadth-first-search

void traverse(Node* root)
{
    queue<Node*> q;
    if (root) 
        q.push(root);
    while (!q.empty())
    {
      const Node * const temp_node = q.front();
        q.pop();
        cout<<temp_node->value<<"\n";

        if (temp_node->left) {
            q.push(temp_node->left);
        }
        if (temp_node->right) {
            q.push(temp_node->right);
        }
    }
}

在BFS(级别顺序遍历)中为什么使用const Node *;这里const的用途是什么,没有const会有什么问题?

1 个答案:

答案 0 :(得分:1)

const是一个关键字,它向编译器指示您不打算写入变量并且只想从中读取它。就算法的逻辑而言,它不应该影响最终结果,也不应该影响它的正确性。它通常用于优化或内存保护。在这种特殊情况下,我怀疑是为了防止在BFS遍历期间修改节点。