Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (46.43 KB, 4 trang )
Một số thuật toán
Trên đồ thị có hướng và không có chu trình
Bài toán 1:
+Cho 1 đồ thị có hướng k có trọng số và k có chu trình.hãy tìm đường đi dài nhất trong đồ thị (qua nhìu
cạnh/đỉnh nhất )
+Thuật toán (Đánh mức) : gọi k là mức của 1 đỉnh ;
K:=0;
Repeat
K:=K+1;
Tìm các đỉnh trọc( đỉnh k có đường đi tới các đỉnh khác) và gán
mức cho nó là k;
Xóa các đỉnh được gán mức và các cung đi vào nó
Until<các đỉnh được gán mức>;
(*) Ý nghĩa : mức của 1 đỉnh là độ dài của đường đi dài nhất bắt đầu từ đỉnh i ;
Đường đi dài nhất là đường xuất phát từ 1 đỉnh có mức cao nhất;
(*) Tìm đường đi dài nhất
+Cách 1 : căn cứ vào mức của đỉnh để in ra ;
Repeat
For i:=1 to n do
If muc[i]=k then
Begin
Write(i,’ ‘);
Break;
End;
Dec(k);
Until k=0;
Cách 2 : dùng mảng sau[i] để lưu lại các đỉnh trọc I, trong quá trình xóa các đỉnh trọc và
cung đi vào nó