Пример #1
0
        public List <Kant> Get(DataTable matrixTable, List <Knoop> knopen, List <Kant> kanten)
        {
            // 2) selecteer een willekeurige knoop en verwijder de betreffende rij
            Knoop beginKnoop = knopen[random.Next(0, knopen.Count)];

            DeleteRow(beginKnoop, matrixTable);
            geselecteerdeKnopen.Add(beginKnoop);

            // 5) zolang niet alle knopen geselecteerd zijn, ga door...
            while (matrixTable.Rows.Count != 0)
            {
                // 3a) selecteer vanuit de geselecteerde knopen (kolommen) de eindknoop met de laagste waarde
                KantKnoop shortestResult = GetShortestArcUsingMatrixTable(matrixTable);

                // No new closest found, we done
                if (shortestResult.HasANull())
                {
                    continue;
                }

                // 3b) voeg de kant [kolomknoop, rijknoop] toe aan de lijst geselecteerde kanten
                geselecteerdeKanten.Add(shortestResult.Kant);

                // 4) voeg de eindknoop toe aan de geselecteerde knopen en verwijder de betreffende rij uit de tabel
                DeleteRow(shortestResult.Knoop, matrixTable);
                geselecteerdeKnopen.Add(shortestResult.Knoop);
            }

            // 6) de lijst met geselecteerde kanten is de oplossing, toon deze lijst
            return(geselecteerdeKanten);
        }
Пример #2
0
        private void DeleteRow(Knoop knoop, DataTable matrixTable)
        {
            List <DataRow> toBeDeleted = new List <DataRow>();

            // Get the right row and add to the list
            foreach (DataRow dr in matrixTable.Rows)
            {
                if (dr["rowName"].ToString() == knoop.Identifier)
                {
                    toBeDeleted.Add(dr);
                }
            }

            // Delete
            foreach (DataRow dr in toBeDeleted)
            {
                dr.Delete();
            }
        }
Пример #3
0
 public Kant(Knoop a, Knoop b, int lengte)
 {
     this.a = a; this.b = b; this.lengte = lengte;
 }
Пример #4
0
 public KantKnoop(Knoop knoop, Kant kant)
 {
     Kant  = kant;
     Knoop = knoop;
 }