我总是遇到最困难的时候,而且我还没有看到对所谓如此普遍和高度使用的东西的明确解释。
我们已经知道标准的二分搜索。给定起始下限和上限,在 (lower + upper)/2 处找到中间点,然后将其与您的数组进行比较,然后相应地重新设置边界,等等。
但是,调整搜索以查找所需的差异是什么(对于按升序排列的列表):
似乎这些情况中的每一个都需要对算法进行非常小的调整,但我永远无法让它们正常工作。我尝试更改不等式、返回条件、更改边界的更新方式,但似乎没有任何一致。
处理这四种情况的最终方法是什么?
我正在尝试在 Scala 中制作一个非常简单的二叉树,用于数据存储和遍历。
现在我有:
trait Tree
case class Node(left: Tree, value: String, right: Tree) extends Tree
Run Code Online (Sandbox Code Playgroud)
我的问题:
我怎样才能包含一个指向父级的指针?
我可以以任何方式将左指针和右指针设置为空吗?或者根节点的父指针?
我怎样才能真正遍历这棵树?
更新节点的值容易吗?