2016-03-30 38 views
0

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

即时通讯不知道如何去解决即时通讯的警告和错误,这些都与队列有关。 我是不是将指针插入队列?我该如何解决?

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(); 
    } 

}  

回答

0

没关系大家,我只是在队列类型上丢失了btnode上的星号