根-左兒子-右兒子
/**
* definition for binary tree
* struct treenode
* };
*/void preorder(treenode *root, vector
&v)
非遞迴遍歷時就是模擬棧,注意入棧順序即可
void preorder(treenode *root, vector
&v)
}
左二子-根-右兒子
void inorder(treenode *root, vector
&v)
非遞迴遍歷時要保證訪問根節點前已經訪問完左二子
void inorder(treenode *root, vector
&v)
if (!s.empty())
}}
左兒子-右兒子-根
void postorder(treenode *root, vector
&v)
後序遍歷要保證兒子們都遍歷完了才訪問根。用乙個輔助節點pre記錄上次訪問的節點,則輸出該節點時只有該節點為葉子節點或者pre為其兒子。否則把其兒子加入棧
void postorder(treenode *root, vector
&v)
else
}}
前序 中序 後序 非遞迴 實現
1.簡述 void preorder node root 3.中序非遞迴 前序中的root主要作為中間變數使用。這裡的root的意義是下乙個要進棧的結點,初始值為根結點。while root不為空 棧不為空 void inorder node root else 4.後序非遞迴 root表示下乙個要...
前序 中序 後序 非遞迴 實現
1.簡述 void preorder node root 3.中序非遞迴 前序中的root主要作為中間變數使用。這裡的root的意義是下乙個要進棧的結點,初始值為根結點。while root不為空 棧不為空 else 4.後序非遞迴 root表示下乙個要處理的結點,初始化為根結點,per表示上一次剛...
C 前序中序後序非遞迴遍歷
前序遍歷 根左右 迴圈到左子樹空,else轉右子樹,當乙個結點已經訪問右子樹時,該結點出棧 include include include include includeusing namespace std struct treenode class solution 左子樹到底了 else re...