2017-06-28 3 views
0

バイナリ検索ツリーの順序通りのトラバーサルの文字列表現を作成して返さなければなりません。以下では、順番に探索をしていますが、これを文字列形式に変更する方法を理解することはできません。私はそれらを一緒に連結するために+を使用してみましたが、端末上では実行されません。必要に応じて私のBSTコード全体を投稿することもできます。お願いしてありがとう。どのように再帰的な順探索を文字列表現で作成しますか?

def in_order(self): 
    if self.__root is not None: 
     self._in(self.__root) 

def _in(self, root): 
    if root is None: 
     return 
    if root is not None: 
     self._in(root.lchild) 
     print(str(root.value)) 
     self._in(root.rchild) 

答えて

0

を連結し、リターン:print(obj.in_order())

def in_order(self): 
    if self.__root is not None:  
     return self._in(self.__root) 

def _in(self, root): 
    if root is None: 
     return '' 

    if root is not None: 
     left = self._in(root.lchild) 
     right = self._in(root.rchild) 
     return left + ' ' + str(root.value) + ' ' + right 

あなたがobj.in_order()を呼び出した結果を印刷することがあります。 1行に1つずつ追加する場合は、両方の出現で' ''\n'に置き換えます。

+0

だから、私が持っていたコードは、順番に数字を返すでしょうが、1行に1つずつ返します。あなたが私に言ったように連結しようとしたとき、ターミナルは何も戻ってくれません – oppa76

関連する問題