推 LPH66 : 我們只在走到節點時紀錄走過, 而不是在推進堆疊時 05/29 19:50
→ LPH66 : 另外, 這三個堆疊紀錄代表不同來源, 而 DFS 要的 05/29 19:53
→ LPH66 : 是從最深點的分支先走, 因此 (5) 的趙六來自 (4) 05/29 19:54
→ LPH66 : 先進行, 而 (6) 來自 (3), (7) 來自 (2) 則當作重覆 05/29 19:55
請問這題的答案是唯一嗎?
感謝您,已匯100p
※ 編輯: ooww (218.166.103.246 臺灣), 05/29/2021 20:22:29
請問可否這樣寫?
1. push(張三(CS))
stack:張三(CS)
2. pop()→走訪張三(CS)
stack:empty
push(趙六(CL))
stack:趙六(CL)
3. pop()→走訪趙六(CL)
stack:empty
push(李四(LS))
stack:李四(LS)
4. pop→走訪李四(LS)
stack:empty
push(王五(WW))
stack:王五(WW)
5. pop→走訪王五(WW)
stack:empty
6. 結束
深度優先搜尋的走訪順序:張三→ 趙六→李四→王五
※ 編輯: ooww (218.166.103.246 臺灣), 05/29/2021 20:41:01
推 LPH66 : 你在尋訪張三時就要把它的所有連線推進堆疊了 05/29 20:55
→ LPH66 : 所以不能只在那裡推趙六, 連李四也要推進去 05/29 20:55
→ LPH66 : 而推的順序即是題目要求的順序 05/29 20:55
→ LPH66 : 因此先推趙六再推李四 05/29 20:56
推 LPH66 : 同理, 尋訪李四時要把它的所有連線推進去 05/29 20:57
→ LPH66 : 扣掉張三是走來的方向, 剩下的先推趙六再推王五 05/29 20:58