C++BF使用指针队列进行搜索

C++ BF Search using pointer queue

本文关键字:搜索 队列 指针 C++BF      更新时间:2023-10-16

好的,所以我试图使用提供给我的模板文件,BTNode是该模板的一部分。无论如何,我试图使用btnode类型的队列来存储指向二进制搜索树节点的指针,然后我将queue.front()中指针指向的数据传递到进程f中。然后我将指针存储到该节点的子节点,并将父节点从队列中弹出。然后重复。至少这就是我想做的。

我只是不知道如何修复我收到的警告和错误,这些都在某种程度上与队列有关。我不是在把指针推入队列吗?我该怎么解决这个问题?

template <class Process, class BTNode>
void breadthfirst(Process f, BTNode* node_ptr)
{
    std::queue<BTNode> map;
    if(node_ptr != NULL)
    map.push(node_ptr);
    while(!map.empty()){
        int a = map.front()*;
        f(a);
        if( map.front() -> right() != NULL)
            map.push(map.front() -> right());
        if(map.front() -> left() != NULL)
            map.push(map.front() -> left());
        map.pop();
    }
}    

别介意,我只是在btnode上缺少队列类型的星号