Salve,
ho un problema con il metodo per aggiungere un vertice alla lista di adiacenza di un altro.Di seguito il codice:
Il fatto che il vertice venga accodato è voluto.Quando la eseguo,aggiungendo b,c,d alla lista di adiacenza di a, ottengo:codice:function add_edge($u,$v){ $index=-1; for($i=0;$i<count($this->list_ad);$i++){//cerco l'indice del vertice if($this->list_ad[$i]->get_nome()==$u->get_nome()){ $index=$i; break; } } if( $index >= 0){//se hai trovato il vertice nel grafo if( $this->list_ad[$index]->get_next() == NULL ){//se la lista di adiacenza è vuota $this->list_ad[$index]->set_next($v); } else{//se non è vuota accoda il vertice. $tmp=$this->list_ad[$index]->get_next(); while($tmp->get_next() != NULL){ $tmp=$tmp->get_next(); } $tmp->set_next($v); } } else{ print "vertice inesistente\n"; } }
Cosa sbaglio?Saluti.codice:Graph Object ( [list_ad:Graph:private] => Array ( [0] => Vertice Object ( [nome:Vertice:private] => a [next:Vertice:private] => Vertice Object ( [nome:Vertice:private] => b [next:Vertice:private] => Vertice Object ( [nome:Vertice:private] => c [next:Vertice:private] => Vertice Object ( [nome:Vertice:private] => d [next:Vertice:private] => ) ) ) ) [1] => Vertice Object ( [nome:Vertice:private] => b [next:Vertice:private] => Vertice Object ( [nome:Vertice:private] => c [next:Vertice:private] => Vertice Object ( [nome:Vertice:private] => d [next:Vertice:private] => ) ) ) [2] => Vertice Object ( [nome:Vertice:private] => c [next:Vertice:private] => Vertice Object ( [nome:Vertice:private] => d [next:Vertice:private] => ) ) [3] => Vertice Object ( [nome:Vertice:private] => d [next:Vertice:private] => ) ) )

Rispondi quotando