如何将树的节点转换为队列的节点?

时间:2012-08-24 12:04:02

标签: algorithm queue copy-constructor breadth-first-search

我正在使用队列来实现广度优先搜索。树的节点属于状态,而队列中的节点属于节点

    struct node
{ 
 int b1,b2,b3,b4;
 node* link;
}

struct state
{
 int b1,b2,b3,b4;
 state* rightChild;
 state* leftChild;
};

Queue.enqueue()函数的原型是:

     bool enqueue(node n);

将树的节点(状态类型)传递给它,我必须通过复制构造函数或重载赋值运算符转换它们,或者 - 我可以使队列成为<的基类strong> state ,以便通过多态在队列中接受状态对象。       现在有什么好办法呢?

1 个答案:

答案 0 :(得分:0)

如何使用

struct node 
{
    struct state* treeNode;
    struct node* link;  
};

您的队列现在可以只存储节点*指针