2024-06-02 05:44:35 发布
网友
我想根据Python的字符串字典顺序将一个给定的字符串转换成一个树,其中每个单词将与下一个单词(不包括根目录)进行比较。也就是说,如果比较w
strings will be like this : string = "sad adsa dqwe fdsf erwa"
到目前为止,我没有做任何事情,但是我有一个想法,那就是将给定的字符串拆分为字符串.拆分,将第一个单词指定为根,如果条件返回True,则递归检查下一个单词。在
如果我准确地理解了您的目标,您只需要一个字符串的二进制搜索树(BST)。 树的每个Node都将是以下格式的列表列表:[left_sub_tree, right_sub_tree, word]。空列表将表示空指针
Node
[left_sub_tree, right_sub_tree, word]
让我们实现一个简单的递归过程,根据字典顺序插入新值(这是Python中字符串的默认比较顺序)。在
def insert(x, word): if len(x) == 0: return [[], [], word] if word < x[2]: x[0] = insert(x[0], word) elif x[2] < word: x[1] = insert(x[1], word) return x
现在,可以像这样为字符串创建BST:
查看结构的最简单方法是逐层打印树:
def print_tree(x, shift): if len(x) == 0: return print_tree(x[0], shift + 2) print " " * shift, x[2] print_right(x[1], shift + 2) print_tree(tree, 0)
仅供参考。上面的过程执行所谓的“按顺序”遍历。在
如果我准确地理解了您的目标,您只需要一个字符串的二进制搜索树(BST)。 树的每个
Node
都将是以下格式的列表列表:[left_sub_tree, right_sub_tree, word]
。空列表将表示空指针让我们实现一个简单的递归过程,根据字典顺序插入新值(这是Python中字符串的默认比较顺序)。在
现在,可以像这样为字符串创建BST:
^{pr2}$查看结构的最简单方法是逐层打印树:
仅供参考。上面的过程执行所谓的“按顺序”遍历。在
相关问题 更多 >
编程相关推荐