欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

先序遍歷的非遞歸算法循環條件

林雅南2年前22瀏覽0評論

先序遍歷的非遞歸算法循環條件?

InitStack(S)

;//初始化棧 p=T;//取棧頂 while(P||!StackEmpty(S)){ //P存在或者棧非空 if(p) { //p非空,即左子樹或者右子樹存在 Push(S,p)

; //將左子樹入棧 p=p->lchild; //取下一個左子樹 } else{ Pop(S,p)

; //出棧,相當于先序遍歷了,因為左子樹都TMD入棧了,現在反向輸出 p=p->rchild; //彈出一個左子樹,就同時取其右子樹右子樹,然后又跳到這個if的最開頭那里,p存在的那個分支。

接下來再取右子樹的左子樹 } } //其實,用遞歸也許你更能理解一些。但是,遞歸本質上也是壓棧,只不過是程序壓棧,還不如這個效率高