gì bạn có nghĩa này:
(thi JAVA có thể được tìm thấy tại liên kết đề cập (xem dưới cùng của câu trả lời này)
// initialize d to infinity, π and Q to empty
d = (∞)
π =()
S = Q =()
add s to Q
d(s) = 0
while Q is not empty
{
u = extract-minimum(Q)
add u to S
relax-neighbors(u)
}
relax-neighbors(u)
{
for each vertex v adjacent to u, v not in S
{
if d(v) > d(u) + [u,v] // a shorter distance exists
{
d(v) = d(u) + [u,v]
π(v) = u
add v to Q
}
}
}
extract-minimum(Q)
{
find the smallest (as defined by d) vertex in Q
remove it from Q and return it
}
chỉnh sửa: nhận này từ http://renaud.waldura.com/doc/java/dijkstra/
Nguồn
2011-08-25 21:29:33
i cần thiết cho đơn giản directionless đồ thị được kết nối s :) – MozenRath
@ Piyush- Bạn có thể biểu diễn một đồ thị vô hướng sử dụng đồ thị có hướng - chỉ cần mỗi cặp nút được kết nối trỏ đến nhau. – templatetypedef
@templatetypedef Theo tôi mã của bạn là mã sạch nhất tôi đã thấy trên mạng cho dijkstra, bạn cũng có thể chia sẻ liên kết cho DirectedGraph mà bạn vượt qua như một đối số? – JavaDeveloper