我正在尝试制作一个使用队列实现广度优先搜索的程序。
// Queue.h
#pragma once
#include<iostream>
struct node
{
int b1,b2,b3,b4;
node* link;
};
struct state
{
int b1,b2,b3,b4;
state* rightChild;
state* leftChild;
};
class Queue
{
private:
node* front, *rear ;
public:
bool enqueue(node n);
//......
};
//BFS.cpp
#include <iostream>
#include "Queue.h"
int main()
{
struct state
{
int b1,b2,b3,b4;
state* rightChild;
state* leftChild;
};
// now i define all the nodes of the tree, each node is of type state
Queue Q; // make a queue
Q.enqueue(initialState); //where initialState is the root
//...
}
我创建的队列存储了 node- 类型的节点,而树中的节点是 State 类型的。我不能使用复制构造函数,因为两者都是单独的结构。那么组织代码以使树的节点在队列中被接受的有效方法是什么?