1 [Hướng dẫn]Tìm cây khung nhỏ nhất bằng Kruskal Thu Jun 16, 2011 5:15 pm
sonld1984
Chuyên viên
Xây dựng cây khung bé nhất của đồ thị liên thông được cho bởi danh sách cạnh theo thuật toán Kruskal:
T[1..n-1] of Edge;
T[1..n-1] of Edge;
1. Sắp xếp các danh sách cạnh sao cho: | | | |||
ds[1].t ≤ ds[2].t ≤ | ...≤ ds[m].t | | | ||
2. For i:=1 to n do | VT(i):=i; | | | ||
3. k=0; ts:=0; | | | | ||
4. For j=1 to m do | | | | ||
| If VT(ds[j].d) != | VT(ds[j].c) Then | | ||
| | a. k++; | | ||
| | T[k] := ds[j]; | | ||
| | ts:=ts + ds[j]; | | ||
| | b. tgd:= VT(ds[j].d); | | ||
| | tgc:= VT(ds[j].c); | | ||
| | for i:= 1 to n do | | ||
| | | If VT(i) := tgd Then VT(i):=tgc; | ||
5. output T, m | | | |