упорядоченный обход двоичного дерева поиска, возвращающего список - PullRequest
1 голос
/ 20 марта 2020

Мне нужно вернуть упорядоченный список ссылок с пустым между ними после обхода BST, но я не могу понять, как это сделать.

def inorder(self, Node):

    res = ""
    if Node != None:

        self.inorder(Node.LeftChild())
        res = res +(Node.key + " " + Node.payload + "\n")
        self.inorder(Node.RightChild())

    return res

это мой код, пока Я могу получить только одну ссылку, любая помощь будет высоко ценится.

1 Ответ

1 голос
/ 20 марта 2020

Вы почти все поняли правильно, просто нужно использовать возвращаемое значение правого и левого поддеревьев в вашей res переменной

def inorder(self, Node):

    res = ""
    if Node != None:

        lres = self.inorder(Node.LeftChild())
        rres = self.inorder(Node.RightChild())
        res = lres + (Node.key + " " + Node.payload + "\n") + rres

    return res

Примечание: res всегда была пустой строкой в ​​вашем условие, поэтому вам не нужно было делать res = res+, также есть сокращенная запись для этого res+=, но вам все равно это не нужно.

...