遞歸算法非常的簡單。先通路跟節點,然後通路左節點,再通路右節點。如果不用遞歸,那該怎麼做呢?仔細
一.先序周遊
看一下遞歸程式,就會發現,其實每次都是走樹的左分支(left),直到左子樹為空,然後開始從遞歸的最深處傳回,然後開始恢複遞歸現場,通路右子樹。
由于一直走到最左邊後,需要逐漸傳回到父節點通路右節點,是以必須有一個措施能夠對節點序列回溯。
可以用棧記憶:在通路途中将依次遇到的節點儲存下來。由于節點出現次序與恢複次序是反序的,是以是一個先
進後出結構,需要用棧;還可以節點增加指向父節點的指針。
二.中序周遊
三.後序周遊
不寫了……
四.層次周遊