【问题标题】:how to traverse through a binary tree of characters and convert them to strings in scheme如何遍历字符的二叉树并将它们转换为方案中的字符串
【发布时间】:2018-04-10 14:57:07
【问题描述】:

I provided a picture, I have no idea how to start this or what to do. 我必须使用一个字符的二叉树,并列出所有可以创建并转换为字符串的可能单词。

编写一个名为 (traverse T) 的 SCHEME 函数,该函数遍历这样的二叉树并返回所有单词的列表,这些单词可以通过从根节点到树中的叶节点的路径来构造。例如,将您的函数应用于图 1 中的树应生成以下列表: ("case" "cast" "care" "cart" "crow" "croc" "crab" "cram")

【问题讨论】:

    标签: scheme


    【解决方案1】:

    不是解决方案,而是一些提示:

    不要过早从列表转换为字符串,专注于构建字符列表。
    将这些列表转换为字符串作为“后处理”步骤。
    (相关:不要从编写一个一次性完成所有事情的函数开始。问问自己“其中有没有我已经知道该怎么做的部分?”)

    假设您有一个节点,其中包含一个字符、从其左子树创建的所有字符列表的列表,以及从其右子树创建的所有字符列表的列表。
    您将如何创建包含子树列表中所有内容的列表,但前面有来自“this”节点的字符?

    也就是说,如果你有树

     a
    / \
    n  t
    

    从创建'((#\n))'((#\t)) 的子树中,您将如何生成'((#\a #\n) (#\a #\t))

    然后考虑基本情况;一棵空树会产生什么?

    然后递归组合你的想法。

    下一阶段,想想如何从'((#\a #\n) (#\a #\t))'("an" "at")

    (除了list->string,您可能还想使用mapappendcons。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 2021-09-09
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      相关资源
      最近更新 更多