我正在使用由嵌套字符串列表组成的数据类型的在线编辑器。请注意,如果我要在每次更改单个值时传输整个结构,流量可能会变得难以忍受。所以,为了减少流量,我考虑过应用差异工具。问题是:如何找到并报告两棵树的差异?例如:
["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"
在树的深处。大多数 diff 工具都适用于平面列表、文件等,但不适用于树。我找不到有关该特定问题的任何文献。报告这种变化的最小方法是什么,找到它的有效算法是什么?