418531 ภาคต้น 2552/โจทย์ปัญหาอัลกอริทึมเกี่ยวกับกราฟ/เฉลยข้อ 8
รุ่นแก้ไขเมื่อ 14:02, 16 กันยายน 2552 โดย Cardcaptor (คุย | มีส่วนร่วม)
สมมติว่า เป็น vertex และให้ เป็นลูกของ เราจะได้ว่า
ฉะนั้นเราสามารถหาค่า สำหรับทุก vertex โดยการปรับปรุง ใหม่ เพื่อให้หลังจาก ทำงานเสร็จแล้ว จะมีค่าถูกต้อง ดังต่อไปนี้
<geshi lang="c"> DFS(u) {
explored[u] = 1 z[u] = x[u] for i = 1 to d[u] do { v = a[u][i] if explored[v] = 0 then DFS(v) if z[v] > z[u] then z[u] = z[v] }
} </geshi>
การหาค่า ของ vertex ทั้งหมดทำได้โดยการรัน ซึ่งทำงานในเวลา ตามต้องการ