0

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
4

1 に答える 1