首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >方案二叉树添加元素

方案二叉树添加元素
EN

Stack Overflow用户
提问于 2020-11-02 15:17:01
回答 1查看 127关注 0票数 1

首先,我想编写一个函数:

接受:

  • 自然数列表,(list 2 6 1 23...),它可能有重复的元素,称为"lst"

  • --一种名为“bst”的随机二叉树

输出:

  • 是一种更新的二叉树,它将列表中的所有数字都添加到

中。

代码语言:javascript
运行
复制
(define (recurse-lst bst lst)
  (cond [(empty? roster) empty]
        [(empty? lst) empty]
        [else (recurse-lst (bst-add bst (first lst)) (rest lst))]))

; helper function
(define (bst-add bst sublst)
  (cond [(empty? bst) (make-node (first sublst) empty empty)]
        [(< (first sublst) (node-key bst))
         (make-node (node-key bst)
                    (bst-add (node-left bst) (first sublst))
                    (node-right bst))]
        [else
         (make-node (node-key bst) (node-left bst)
                    (bst-add (node-right bst) (first sublst)))]))

问题

我目前正在尝试将其用于嵌套列表;例如(list (list 1) (list 2).),每个子列表中只有一个元素。但是,它似乎不起作用,并且(第一个sublst)在bst-add中将sublst转换为一个数字,类似于(前1)。

我想我以前在其他代码中也有过类似的but,但我想不起来是什么时候和什么地方了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-03 15:03:21

现在你已经

代码语言:javascript
运行
复制
(define (recurse-lst bst lst)
   (cond [(empty? roster)
       ....

"lst“。

"roster“。

您需要始终将您的错误消息包含在文章中。

下一首。您调用(bst-add bst (first lst)),因此该调用中的第二个参数已经是一个数字。然而,在bst-add的定义中,您将第二个参数命名为"sublst“,并将其视为列表。不用再吃first了。事实上,取一个数字的first是一个错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64648252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档