0

幅優先検索を実装するためにキューを使用しています。ツリーのノードはstate型で、キュー内のノードはnode型です。

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

ツリーのノード (状態型) を渡すには、コピー コンストラクターまたはオーバーロードされた代入演算子によってそれらを変換する必要があります。または、状態オブジェクトがキューで受け入れられるように、Queueを状態の基本クラスにすることができます。ポリモーフィズムによって。これを行う良い方法は何ですか?

4

1 に答える 1

0

使ってみてはどうですか

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

キューは node* ポインターを単純に格納できるようになりました

于 2012-08-24T13:45:18.360 に答える