我记得一个网页描述了与某些功能编程任务相关的有趣技术。问题是我不记得它是什么。
它有一个二叉树节点(Tree left, Tree right, Data d)
作为示例,可以描述为Tree*Tree*Data
或Tree^2*Data
。然后,当例如Tree
导出时,我们得到2*Tree*Data
。
你能指出我的用途吗?
答案 0 :(得分:3)
听起来像Zipper。
跟进:这种事情的咒语是“一种类型的衍生物是它的单洞背景”。这个想法是,如果你想用一个你希望进行插入的点来表示一个二叉树,那么它的数据结构恰好是从洞到树的根和每个节点上升的路径。你必须记住你是从左边还是右边来的,以及那个节点上的数据以及你不是来自它的子树。好吧,这正是2的元组(又名左/右)*数据*树。