Mình minh họa thuật toán này trên Pascal procedure Dijkstra; (* Đầu vào: Đồ thị có hướng G=(V,E) với n đỉnh, S thuộc V là đỉnh xuất phát, a[u,v],u,v thuộc V, ma trận trọng số; Giả thiết: a[u,v]>=0, u,v thuộc V. Đầu ra: Khoảng cách từ đỉnh s đến tất cả các đỉnh còn lại d[v],v thuộc V. Truoc[v],v thuộc V, ghi nhận đinh trước v trong đường đi ngắn nhất từ s đến v. *) begin (* Khởi tạo *) for v thuộc V đo begin d[v]:=a[s,v]; Truoc[v]:=s; end; d:=0; T:=V \ {s}; (* T là tập các đỉnh có nhãn tạm thời *) (* Bước lặp *) while T khác rỗng do begin Tìm đỉnh u thuộc T thỏa mãn d=min { d[z] : z thuộc T}; T :=T \ {u}; (* Cố định nhãn của đỉnh u *) for v thuộc T do (* Gán nhãn lại cho các đỉnh trong T *) if d[v] > d + a[u,v] then begin d[v]:=d + a[u,v]; Truoc[v]:=u; end; end; end; chúc các bạn thành công.