2009-08-27 5 views

答えて

2

何がポスト順序tree traversalとして知られている探している:

postorder(node) 
    if node.left ≠ null then postorder(node.left) 
    if node.right ≠ null then postorder(node.right) 
    print node.value 
+0

thanx Konrad Rudolph、正確な用語をクリアするため。 –

0

簡単に、各ノードは(左、右、データ)です。

最初のノードから開始します。右側のサブツリーのアルゴリズムを実行し、右側のサブツリーのアルゴリズムを実行してデータを印刷します。例えば

TreeNode = ([TreeNode], Data, [TreeNode]) 

TreeToPostfix: [TreeNode] -> Data* 
TreeToPostfix(nil) = [] 
TreeToPostfix((left, data, right)) == 
    TreeToPostfix(left) ++ TreeToPostfix(right) ++ Data 

   + 
      / \ 
      *  - 
     /\ /\ 
     2 3 4 5 

が生成されます2 3 * 4 5 - +

+0

データが常にツリーのローレベルレベルにあるので、アプローチを説明することができます –

+0

この場合のデータは、値とopの両方ですエリータ。私のアルゴリズムはプレフィックスを生成しましたが、postfixに固定されました。 –

+0

thanx Gamecatヘルプについて。 –

関連する問題