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