Racket:将新节点插入二叉搜索树

时间:2017-11-04 23:09:46

标签: scheme binary-tree racket racket-student-languages

假设我们有二叉树结构:

(define-struct tree-node (left right node))    

我在创建二叉搜索树时遇到了麻烦。我的主要问题是,我不知道如何将节点插入树中或在make-tree-node结构中向左或向右覆盖。
假设我们的树长为8,如果向左或向右为空,我想插入一个新节点。我的问题在于如何深入探究?这可能是递归的,如果是,我该怎么做?

只能使用中间级别。

1 个答案:

答案 0 :(得分:1)

来自How to Design Programs的设计食谱回答了这个问题。第19.5节专门针对二叉搜索树。但是,这里最有帮助的材料可能是第8节和第9节中的内容。为您提供一些线程:首先,您需要二叉搜索树的数据定义。然后,您需要为各种情况编写测试用例,包括基本情况(插入空节点)。然后,您需要遵循与数据定义关联的模板。