Ejemplo n.º 1
0
     public void floyd()
     {
         Initbgcoll.Clear();
         StepColl.Clear();
         int i, j, k;         
         //khoi dong ma tran D va P    
         for (i = 0; i < SoNut; i++)
         {
             for (j = 0; j < SoNut; j++)
             {
                 D[i, j] = weight[i, j];
                 P[i, j] = -1;
                 //Khởi tạo BangGhi
                 if (weight[i, j] > 0 && weight[i, j] < VOCUNG)
                 {
                     BangGhiFloyd bgFloyd = new BangGhiFloyd();
                     bgFloyd.Dau = diemColl.Index(i).Ten;
                     bgFloyd.TrungGian = "-1";
                     bgFloyd.Cuoi = diemColl.Index(j).Ten;
                     bgFloyd.ChieuDai = D[i, j];
                     Initbgcoll.Add(bgFloyd);
                 }
             }
         }
 //        BangGhi.Add(Initbgcoll);  
         // Tinh ma tran D va P o buoc lap thu k
        
         for (k = 0; k < SoNut; k++)
         {
             for (i = 0; i < SoNut; i++)
             {
                 if ((D[i, k] > 0) && (D[i, k] < VOCUNG))
                     for (j = 0; j < SoNut; j++)
                     {
                         if ((D[k, j] > 0) && (D[k, j] < VOCUNG))
                         {
                             if ((D[i, j] != 0) && (D[i, k] + D[k, j] < D[i, j]))
                             {
                                 D[i, j] = D[i, k] + D[k, j];
                                 P[i, j] = k;
                                 //Thêm vào 1 dòng
                                 BangGhiFloyd bgFloyd1 = new BangGhiFloyd();
                                 bgFloyd1.Dau = diemColl.Index(i).Ten;
                                 bgFloyd1.TrungGian = diemColl.Index(k).Ten;
                                 bgFloyd1.Cuoi = diemColl.Index(j).Ten;
                                 bgFloyd1.ChieuDai = D[i, j];
                                 StepColl.Add(bgFloyd1);
                         //        BangGhi.Add(Initbgcoll);
                             }
                         }
                     }
             }
         }
     }
 public void Add(BangGhiFloyd bangghi)
 {
     List.Add(bangghi);
 }