深度優(yōu)先遍歷非遞歸 層序遍歷二叉樹與經(jīng)典遞歸遍歷的性能差距多大?
層序遍歷二叉樹與經(jīng)典遞歸遍歷的性能差距多大?遞歸遍歷二叉樹程序很短,易懂。在性能方面,遞歸速度快,占用內(nèi)存少。但遞歸程序包含深度優(yōu)先和廣度優(yōu)先的遍歷方法,比較復(fù)雜,容易出錯?,F(xiàn)在CPU速度非??欤褩?/p>
層序遍歷二叉樹與經(jīng)典遞歸遍歷的性能差距多大?
遞歸遍歷二叉樹程序很短,易懂。在性能方面,遞歸速度快,占用內(nèi)存少。但遞歸程序包含深度優(yōu)先和廣度優(yōu)先的遍歷方法,比較復(fù)雜,容易出錯。
現(xiàn)在CPU速度非???,堆??臻g非常大。性能差異可以忽略不計。
或遞歸遍歷二叉樹程序可讀性更好。
問:由鄰接矩陣怎么求深度遍歷和廣度遍歷以及詳細過程?
你想要代碼嗎?讓我們先用鄰接矩陣來畫圖。深度優(yōu)先遍歷使用遞歸。對于一個節(jié)點,它遞歸地訪問它沒有訪問過的相鄰節(jié)點。就像走在迷宮里。當你知道沒有路可走時,你可以往回走,找到下一個十字路口。寬度優(yōu)先遍歷使用隊列。當一個節(jié)點不在隊列中時,它會將其未訪問的鄰居節(jié)點排隊。就像嚴重近視的人一樣,如果掉了眼鏡,他們會先找到最近的圓,然后再擴大一點。每次遍歷都使用VIS數(shù)組標記來確保每個節(jié)點只被訪問一次。