0
MATLAB에서 셀 배열로 액세스하는 이진 트리가 있습니다 (예 : a{1}{2}
). 트리의 모든 프린지 노드에 액세스 할 수있는 재귀 함수 (아래)를 작성할 수있었습니다. 다음으로해야 할 일은 프린지 노드의 값을 다른 값으로 대체하는 것입니다. 그러나 나는이 부분에 어려움을 겪고있다. 재귀 함수가 호출 될 때마다 값은 새로운 값을 유지하지 않고 오리지널 값으로 되돌립니다. 함수에서 값이 업데이트 된 상태인지 확인하는 간단한 방법이 있습니까? 고맙습니다! 매트랩재귀 함수에서 '셀'값 업데이트 문제 (MATLAB)
function findLeaves(a)
if(iscellstr(a) == 1) % just above fringe node
a{2} = 2; %change fringe node to value 2
else
if(length(a) == 3 || length(a) == 2) % go left
findLeaves(a{2});
end
if (length(a) == 3) % go right
findLeaves(a{3});
end
end
end
중첩 된 호출을 findLeaves로 변경하여 제공된 매개 변수 대신 .a를 업데이트해야한다고 생각합니다. 예 : a = findLeaves (a {2}); a {2} = findLeaves (a {2}) 여야합니다. – grantnz
@ grantnz 나는 당신이 옳았다 고 생각하지만 ... Mandeep은이 시점에서 그것을 해결할 수있다. – Werner
알았어요. 네,이 작품. 감사합니다, 많이 감사드립니다! –