두 노드 간의 모든 경로를 찾으려면 scilab에 깊이 우선 검색을 구현하려고합니다.깊이 우선 탐색을 구현할 때 가로 세로 오류가 발생 함
error 21 Invalid index
오류 메시지가 나타납니다. 나는 여기와 다른 곳에서 해결책을 찾으려고 노력했다. 나는 그것을 찾을 수 없었다.
내 질문 : 누구든지 내 코드에서 오류를 찾을 수 있습니까? 또는 대안으로, 내가 잘못한 방법을하고 있으며 다르게해야 하는가. 내 궁극적 인 목표는이 방법을 사용하여 두 노드 사이의 모든 경로를 찾으려면 약 1800 노드의 그래프.
function [x] = dfs(node)
if node==j then
//print path to file
[nrRows,nrCols]=size(path)
for counter=1:nrCols
mfprintf(o1,'%d ',path(1,counter))
end
mfprintf(o1,'\n')
else
visited(1,node)=1;
path=[path,node]
for nr=1:n
if v(node,nr)==1 then //node en nr zijn neighbours
if visited(1,nr)==0 then
[y]=dfs(nr)
end
visited(1,nr)=0
path(:,$)=[] //verwijder laatste element uit path
end
end //for nr
end
x=1
endfunction
그리고 나는 이런 식으로 호출하고 있습니다 :
내 코드는
n=4;
v=[ 0 1 1 0;
1 0 1 0;
1 1 0 1;
0 0 1 0];
i=1; //starting node
j=3; //end node
visited=zeros(1,n);
path=zeros(1,1);
o1 = mopen('pathsBetweenTwoNodes', 'w');
[a]=dfs(i);
는 잡담 : I에 유래하는 새입니다. 제가 규칙이나 관습에 위배되는 일을한다면 제게 말해주십시오. 지금이나 미래에 그것을 고칠 최선을 다할 것입니다.
미리 조언 해 주셔서 감사합니다. Paulien
신속하게 오류를 재현하려고 시도한 결과,'visited (1, node) = 1;'행이 단일 값을'방문한 '것으로 보았습니다. 이제 나는 그 이유를 알아봐야 만합니다. Vreemd .... – spoorcc