二叉搜索树,广度优先遍历

时间:2013-11-14 08:14:21

标签: binary-search-tree

我一直坐在这个上一段时间。在二进制搜索树中,当您进行广度优先遍历时,有一行代码我不知道它的作用。在教科书中我使用的代码如下。

public void breadthFirst()
    {
        BSTNode<T> p = root;
        Queue<BSTNode<T>> queue = new Queue<BSTNode<T>>();
        if(p != null)
        {
            queue.enqueue(p); 
        while(!queue.isEmpty()) 
        {
            **p = queue.dequeue();**  
            visit(p); 
            if(p.left != null)
            {
                queue.enqueue(p.left);
            }
            if(p.right != null)
            {
                 queue.enqueue(p.right);
                }
               }
    }
}

1 个答案:

答案 0 :(得分:0)

Queue包含我们必须访问的节点。在我们访问节点之前,我们将其从队列中取出(出队),以便不再访问它。