圖的存儲與遍歷
發布時間: 2025-04-09 08:50:39
① 採用鄰接表存儲的圖的深度優先遍歷演算法類似於二叉樹的先序遍歷,為什麼是先序呢
這是因為圖的深度優先遍歷演算法先訪問所在結點,再訪問它的鄰接點。與二叉樹的先序遍歷先訪問子樹的根結點,再訪問它的孩子結點(鄰接點)類似。圖的廣度優先遍歷演算法類似於二叉樹的按層次遍歷。
先序遍歷也叫做先根遍歷、前序遍歷,可記做根左右(二叉樹父結點向下先左後右)。
首先訪問根結點然後遍歷左子樹,最後遍歷右子樹。在遍歷左、右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹,如果二叉樹為空則返回。
例如,下圖所示二叉樹的遍歷結果是:ABDECF。
(1)圖的存儲與遍歷擴展閱讀:
遍歷種類:
一、NLR:前序遍歷(Preorder Traversal 亦稱(先序遍歷)),訪問根結點的操作發生在遍歷其左右子樹之前。
二、LNR:中序遍歷(Inorder Traversal),訪問根結點的操作發生在遍歷其左右子樹之中(間)。
三、LRN:後序遍歷(Postorder Traversal),訪問根結點的操作發生在遍歷其左右子樹之後。
注意:
由於被訪問的結點必是某子樹的根,所以N(Node)、L(Left subtree)和R(Right subtree)又可解釋為根、根的左子樹和根的右子樹。NLR、LNR和LRN分別又稱為 先根遍歷、中根遍歷和後根遍歷。
熱點內容