什么是遍歷規(guī)律 樹的深度遍歷和先序遍歷是一回事嗎?廣度遍歷呢?
樹的深度遍歷和先序遍歷是一回事嗎?廣度遍歷呢?二叉樹的一階,二階,中間階。深度和廣度是常見的樹木。深度遍歷:從樹的根開始掃描,從頂層開始掃描,從一層最左邊(或最右邊)的節(jié)點掃描到底層,直到下層沒有節(jié)點
樹的深度遍歷和先序遍歷是一回事嗎?廣度遍歷呢?
二叉樹的一階,二階,中間階。深度和廣度是常見的樹木。深度遍歷:從樹的根開始掃描,從頂層開始掃描,從一層最左邊(或最右邊)的節(jié)點掃描到底層,直到下層沒有節(jié)點為止。此時,將掃描所有最左側(右側)的節(jié)點。從樹的頂部后退一步,查看層旁邊是否有兄弟節(jié)點。如果有,從最左邊(右邊)掃描。這是一個遞歸概念,使用此方法遍歷整個樹。寬度遍歷:從樹的根開始掃描,掃描第一層的所有節(jié)點,掃描第二層的所有節(jié)點,掃描底部節(jié)點。
花一晚上也無法理解二叉樹的非遞歸遍歷,我該繼續(xù)學下去嗎?
通常情況下,有必要花更多的時間。首先需要了解堆棧的操作和意義,還需要了解遍歷二叉樹的思想。有人用節(jié)點著色來編寫非遞歸算法,即黑、灰、白三種顏色代表節(jié)點的狀態(tài),未被訪問的節(jié)點為白色,未被訪問的節(jié)點為灰色,被訪問的節(jié)點為黑色。對于中間順序遍歷,除非訪問了左子樹,否則需要訪問當前節(jié)點,所以依次沿左子樹搜索,找到葉子后訪問,然后退出右堆棧上的元素,并在右子樹上執(zhí)行相應的操作,直到堆棧為空。