ネストされた文字列のリストで構成されるデータ型のオンライン エディターで作業しています。単一の値が変更されるたびに構造全体を転送しようとすると、トラフィックが耐えられなくなる可能性があることに注意してください。そこで、トラフィックを減らすために、差分ツールを適用することを考えました。問題は次のとおりです: 2 つのツリーの差分を見つけて報告するにはどうすればよいですか? 例えば:
["ah","bh",["ha","he",["li","no","pz"],"ka",["kat","xe"]],"po","xi"] ->
["ah","bh",["ha","he",["li","no","pz"],"ka",["rag","xe"]],"po","xi"]
そこでは、唯一の変化は"kat" -> "rag"
木の奥深くにあります。差分ツールのほとんどは、フラット リスト、ファイルなどで機能しますが、ツリーでは機能しません。その特定の問題に関する文献は見つかりませんでした。そのような変化を報告するための最小限の方法と、それを見つけるための効率的なアルゴリズムは何ですか?