2017-01-22 8 views
-4

C *でA *アルゴリズムを実装しようとしています。アルゴリズムが見つけたパスを描くことを除いて、すべて動作するようです。' - >'の基本オペランドに非ポインタ型があります

for(int i = 0; i<succesor.size(); i++){ 
     if(tab[succesor[i].x][succesor[i].y] == 'E'){ 
      node s = succesor[i]; 
      while(s.parent != NULL){ 
       tab[s.x][s.y] = '*'; 
       s = s->parent; 
      } 
     } 
    } 

そして、ここに私のノード構造体である:

struct node{ 
    node *parent; 
    int x, y; 
    double f, g, h; 
}; 
+1

を;' –

+0

ああ、あなたは正しい。私はこの1時間前に座っていて、それを見ませんでした。ありがとうございました – photons3432

+0

ノードをコピーしています。これはポインタとうまくはまりません。ノードのいくつかのコピーが周囲に浮かんでいる場合、ノードの親はどこですか? 's-> parent'は1つのコピーだけを指すことができます。 –

答えて

1

この試す全体node構造をコピー回避するために:私はあなたが `S = * s.parentを意味だと思う

for(int i = 0; i<succesor.size(); i++){ 
    if(tab[succesor[i].x][succesor[i].y] == 'E'){ 
     node* s = &succesor[i]; 
     while(s->parent != NULL){ 
      tab[s->x][s->y] = '*'; 
      s = s->parent; 
     } 
    } 
} 
関連する問題