显示节点dfs算法深度

时间:2015-10-01 15:22:19

标签: graph-algorithm

在创建相邻节点期间,我创建了一个向量,从哪里查看相邻节点,直到到达目标节点,但是当你创建时不理解为什么,因为我最后删除了它。

vettore_nuovo_percorso =

 1     2     4     5

vettore_nuovo_percorso =

 1     2     4     5

nodi =

 1     2     4     5

ans =

 1     1     1     1     1     1     1
 0     2     4     2     2     2     2
 0     0     0     3     4     4     4
 0     0     0     0     0     3     5

nodi_sorgenti =

 3     5

nodi_sorgenti =

 3     5

'BLACK'

'BLACK'

'BLACK'

'BLACK'

'BLACK'

ans =

 1     1     1     1     1     1     1
 0     2     4     2     2     2     2
 0     0     0     3     4     4     4
 0     0     0     0     0     3     5

conta_nodo_trovato =

 1

代码的关键方面 矢量路径不应该消失

vettore_nuovo_percorso =

 []

nodi =

 []

ans =

 1     1     1
 0     2     4

nodi_sorgenti =

 2     4

nodi_sorgenti =

 2     4

'BLACK'

'BLACK'

'WHITE'

'BLACK'

'WHITE'

ans =

 1     1     1
 0     2     4



          function [vertice,nodi]=DFS_Visit(edges,vertices,self,nodi_visitati,vb,conta_impo_colore,conta_nodo_trovato)

%con un un ciclo copio sul vettore nodi_sorgenti tutte le destinazioni %raggiugibili da dove poi viene passatto来terzo parametro alla chiamata %DFS_Visit(边,顶点,自我,nodi_visitati,VB,conta_impo_colore,conta_nodo_trovato)

    for j6=1:length(nodi_visitati)


       vertices.conta_righe=vertices.conta_righe+1;


%copio tutte le possibili destinazioni sul vettore
%percorso solo una volta

 display(vertices.conta_righe);

if vertices.conta_righe==1


for j=1:length(nodi_visitati)



   self.vettore_percorso(vertices.conta_righe,j)=nodi_visitati(j6);

        display(self.vettore_percorso);

     end

     end

     [n1,m1]=size(self.vettore_percorso);


       for j2=1:m1

%prelevo la sorgente            如果nodi_visitati(j6)== self.vettore_percorso(n1,j2)

  if nodi_visitati(j6)~=vb


conta_edge=0;

  conta_nodi_sorgenti=0;



   %dimensione riga e colonna


[n1,m1]=size(self.vettore_percorso);         



   display(self.vettore_percorso);

%se esiste prelevo tutte le destinazioni del nodo


   edges2=ver.connectedEdges(edges,nodi_visitati(j6));


    for j8=1:length(edges2)

   %contatore nodi sorgenti

%inserimento destinzioni nel vettore nodi_sorgenti

conta_nodi_sorgenti=conta_nodi_sorgenti+1;
    nodi_sorgenti(conta_nodi_sorgenti)=edges2(j8);

如果nodi_sorgenti(con​​ta_nodi_sorgenti)== vb

indice=conta_nodi_sorgenti;
end

%copio in un vettore in una nuova riga e nella stessa colonna il valore
%della destinazione


display('edg');


display(edges2);



     end



   [n2,m2]=size(self.vettore_percorso);         

    %copio sul vettore tutti i  valori pari a
     %valore delle destinazioni nella colonna j2
       %trovata  da dove risiede la sorgente trovata



       if self.vettore_percorso(n1,j2)~=vb
             for k=1:n2

          for j=1:length(edges2)

             self.vettore_percorso(k,m2+j)=self.vettore_percorso(k,j2);
           display(self.vettore_percorso);

                                      end
       if k==n2

        for k3=1:length(edges2)

    %copio su tutti
       %ivettori le
        %destinazioni
           %ragggiungibili
           %sul vettore
          %self.vettore_percorso

    self.vettore_percorso(n2+1,m2+k3)=edges2(k3);
                                                  end
                                      end

                            end

                            end




  end                           








                       end




                               end

    end















     [n,m]=size(self.vettore_percorso);

%chiamata della funzione DFS

for j=1:length(nodi_sorgenti)

      if nodi_sorgenti(j)~=vb




      self.conta_v=1;

display(conta_visita);

  display('nkl');


         display(conta_visita);

       display(nodi_sorgenti);



      else

          self.conta_v=0;

      end

end
       if self.conta_v==0


      DFS.DFS_Visit(edges,vertices,self,nodi_sorgenti,vb,conta_impo_colore,0);



end


end









   %copio sul vettore tutte i percorsi fino a raggiungere
       %la destinazione


    [n3,m3]=size(self.vettore_percorso);



     for j3=1:m3


if self.vettore_percorso(j4,j3)==vb


     conta_nodo_trovato=1;



[n3,m3]=size(self.vettore_percorso);         



display('j3');
     conta_visita=1;
display(j3);

conta_percorso=conta_percorso+1;   
    for j7=1:m3


        if j7==j3
                for j8=1:n3
vettore_nuovo_percorso(conta_percorso,j8)=self.vettore_percorso(j8,j3);
              display(vb);

  end


        end

    end                             





                                                 end                                     



                                                       end




    end

0 个答案:

没有答案