Leaflet中對滑鼠按下、移動事件監聽實現移動單個圖形
阿新 • • 發佈:2022-04-07
遍歷方法
BFS(寬度優先搜尋)
以下圖的順序進行訪問
即先被訪問的結點先拿出來
與其相似地,佇列也具有先進先出的特點
DFS(深度優先搜尋)
以下圖的順序進行訪問
先序遍歷
以下圖的順序進行訪問
即按照 根 左 右的順序訪問
函式實現:使用遞迴的方法
點選檢視程式碼
// 遞迴求深度,NIL=-1
void set_depth(int u, int d) {
if (u == NIL) return;
D[u] = d;
set_depth(T[u].left, d + 1);
set_depth(T[u].right, d + 1);
}
中序遍歷
以下圖的順序進行訪問
即按照 左 根 右的順序訪問
函式實現:
點選檢視程式碼
void set_depth(int u, int d) {
if (u == NIL) return;
set_depth(T[u].left, d + 1);
D[u] = d;
set_depth(T[u].right, d + 1);
}
後序遍歷
以下圖的順序進行訪問
即按照 左 右 根的順序訪問
函式實現:
點選檢視程式碼
void set_depth(int u, int d) { if (u == NIL) return; set_depth(T[u].left, d + 1); set_depth(T[u].right, d + 1); D[u] = d; }
結論
所以我們就可以通過一棵樹對應的三種訪問順序來還原這棵樹
比如如果一棵樹的先序,中序,後序訪問順序分別為
1 2 3 4 5
3 2 4 1 5
3 4 2 5 1
那麼我們就可以還原出這棵樹是下圖的樣子