Esempio n. 1
0
    public static void Main(string[] args)
    {
        var locQue = new Queue <Location>(5);

        //Nustatomos Lietuvos miestų koordinates kurioms bus skaičiuojamas trumpiausias kelias
        locQue.Enqueue(new Location("Vilnius", 54.7007582, 24.972848));
        locQue.Enqueue(new Location("Alytus", 54.4035106, 23.9598724));
        locQue.Enqueue(new Location("Kaunas", 54.8900919, 23.7871791));
        locQue.Enqueue(new Location("Ukmergė", 55.2393692, 24.7007296));
        locQue.Enqueue(new Location("Klaipėda", 55.7054542, 21.0178082));
        var locs = new Location[5];

        locQue.CopyTo(locs, 0);

        var keliai  = new List <kelias>();
        var current = locQue.Dequeue();

        //ciklas skirtas kelių visų sąsajų išrinkimui
        while (current != null)
        {
            for (int i = locs.Length - 1; i >= 0; i--)
            {
                if (current != locs[i])
                {
                    var kelias = new kelias()
                    {
                        Nuo = current,
                        Iki = locs[i]
                    };
                    if (keliai.Contains(kelias) == false)
                    {
                        keliai.Add(kelias);
                        Console.WriteLine("Pridedamas {0} į {1}", kelias.Nuo.Pavadinimas, kelias.Iki.Pavadinimas);
                    }
                }
            }
            current = locQue.Count > 0 ? locQue.Dequeue() : null;
        }
        //parodo galimų kelių kiekį
        Console.WriteLine("Iš viso {0} keliai(-ų)", keliai.Count);


        var satNav = new KelioSkaiciavimas(keliai);

        satNav.PridetiMarsruta(locs[1]);
        satNav.PridetiMarsruta(locs[2]);
        satNav.PridetiMarsruta(locs[3]);
        satNav.PridetiMarsruta(locs[4]);

        //var route = satNav.TrumpiausiasKelias(locs[0]);
        satNav.TrumpiausiasKelias(locs[0]);

        Console.WriteLine("Paspauskite bet kurį klavišą norint išeiti...");
        Console.ReadKey();
    }
Esempio n. 2
0
 protected bool Equals(kelias kitas)
 {
     return(((Equals(Nuo, kitas.Nuo)) || (Equals(Nuo, kitas.Iki))) && ((Equals(Iki, kitas.Iki)) || Equals(Iki, kitas.Nuo)));
 }