MATLAB でセル配列としてアクセスされるバイナリ ツリーがあります (例: a{1}{2}
)。ツリーのすべてのフリンジ ノードにアクセスできる再帰関数 (以下) を作成できました。私の次のタスクは、フリンジ ノードの値を他の値に置き換えることです。しかし、私はこの部分に問題があります。再帰関数を呼び出すたびに、値は新しい値を保持せず、元の値に戻ります。関数内で値が更新されたままであることを確認する簡単な方法はありますか? ありがとうございました!
コードは次のとおりです。
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