0

これは再帰アルゴリズムでなければなりません

dis(tree, x, y)<-- 関数呼び出し x & y はノード

各再帰呼び出しは (dx, dy, dxy) を返します dx は x の深さ dy は y の深さ dxy は互いの距離

最小共通祖先を使用することを考えていますが、それはこの形式には適していません (グローバル変数なし)。

4

2 に答える 2

3

これは再帰アルゴリズムでなければなりません

あなたが望む答えに対する制約としてそれを意味していると思います(反復的な解決策があります)。再帰的 (機能的) ソリューションは次のとおりです。

dis(tree, x, x) = 0

dis(tree, x, NULL) = INF
dis(tree, NULL, x) = INF 

dis(tree, x, y) = min(dis(tree, parent(x), y)+1, dis(tree, x, parent(y))+1)
于 2012-06-18T21:24:58.137 に答える
0

ツリーが二重にリンクされている場合は、ノード x からノード y を検索する幅優先検索を実行できます。

于 2012-06-18T21:26:29.400 に答える