data Tree = Node Int Tree Tree | Nil
崩溃::树-> Int塌陷Nil = []塌陷(节点x y z) =(折叠y) ++ x++ (塌陷z)
一个Haskell函数check :: Tree -> Bool,它检查树是否是二进制搜索树.我用一棵树测试它,得到2 4 7 8 10 | 5 6 10 12。在这里,您可以看到到中间的所有值都是排序的,但
我正在尝试为带有splay trees的范围函数编写一些伪代码:Range(S, A, B),它将S更改为键值C满足A≤C≤B的所有成员的集合。我知道splay树属于二进制搜索树的类型,并实现它们自己的splay操作。基本上,我试图返回一系列介于A和B之间的值。然而,我无法理解我应该如何做,或者我应该从哪里开始,以及我应该检查哪些条件。我已经阅读了展开树的定义,并且知道它们就像使用移动到前面算法的二进制搜索树。我不确