コード例 #1
0
        public void ArabalariListele(ListBox lstListe)
        {
            lstListe.Items.Clear();

            Araba siradakiAraba = Peek();

            foreach (Araba araba in Yigin)
            {
                if (araba != null)
                {
                    if (araba == siradakiAraba)
                    {
                        lstListe.Items.Add("-> " + araba.ad);
                    }
                    else
                    {
                        lstListe.Items.Add(araba.ad);
                    }
                }

                else
                {
                    break;
                }
            }
        }
コード例 #2
0
        public void ArabalariListele(ListBox lstListe)
        {
            lstListe.Items.Clear();

            Araba siradakiAraba = Peek();

            foreach (Araba araba in Kuyruk)
            {
                if (araba != null)
                {
                    if (araba == siradakiAraba)
                    {
                        lstListe.Items.Add("-> " + araba.ad);
                    }

                    else
                    {
                        lstListe.Items.Add(araba.ad);
                    }
                }

                else
                {
                }// diger arabalara gec
            }
        }
コード例 #3
0
        /// <summary>
        /// Katlara arabaların eklendiği fonksiyon - linkedlist-stack-queue elemanların eklenmesi
        /// </summary>
        private void ArabalariEkle()
        {
            Araba yeniAraba;

            string[] renkler = { "Yeşil", "Kırmızı", "Beyaz",    "Siyah",   "Turkuaz",
                                 "Sarı",  "Gri",     "Mavi",     "Mor",     "Kahrevengi",
                                 "İnci",  "Bordo",   "Lacivert", "Turuncu", "Pembe" }; // araba renkleri

            for (int kat = 1; kat >= -1; kat--)
            {
                for (int renk = 0; renk < 15; renk++)
                {
                    switch (kat)
                    {
                    case 1:
                        yeniAraba    = new Araba();
                        yeniAraba.ad = "UKat - " + renkler[renk];      // Üst Kat için -> UKat-Yeşil...
                        uKat.InsertLast(yeniAraba);
                        break;

                    case 0:
                        yeniAraba    = new Araba();
                        yeniAraba.ad = "ZKat - " + renkler[renk];      // Zemin Kat için -> ZKat-Yeşil...
                        zKat.Insert(yeniAraba);
                        break;

                    default:
                        yeniAraba    = new Araba();
                        yeniAraba.ad = "BKat - " + renkler[renk];     // Bodrum Kat için -> BKat-Yeşil...
                        bKat.Push(yeniAraba);
                        break;
                    }
                }
            }
        }
コード例 #4
0
        public override void InsertLast(Araba yeniAraba)
        {
            Node oldLast = Head;

            if (Head == null)
            {
                InsertFirst(yeniAraba);
            }

            else
            {
                Node newLast = new Node();
                newLast.Data = yeniAraba;

                while (oldLast != null)
                {
                    if (oldLast.Next != null && oldLast.Next != Head)
                    {
                        oldLast = oldLast.Next;
                    }

                    else
                    {
                        break;
                    }
                }

                oldLast.Next = newLast;
                Last         = newLast;
                newLast.Next = Head;

                size++;
            }
        }
コード例 #5
0
        public Araba Pop()
        {
            Araba cikacakAraba = Yigin[Top];

            Yigin[Top] = null;
            Top--;

            return(cikacakAraba);
        }
コード例 #6
0
        public override void InsertFirst(Araba yeniAraba)
        {
            Node tempHead = new Node();

            tempHead.Data = yeniAraba;

            Head = tempHead;
            Last = Head;

            size++;
        }
コード例 #7
0
        private void btnCikar_Click(object sender, EventArgs e)
        {
            btnEkle.Enabled    = false;
            btnHesapla.Enabled = true;

            if (!zKat.IsEmpty())
            {
                ListeTemizle();
                Random   rand       = new Random();
                string[] katlar     = { "ustkat", "bodrumkat" };
                string   cikacakKat = katlar[rand.Next(2)]; // İlgili kat seçiminin rastegele yapılması
                cikacakKat = KatlariKontrolEt(cikacakKat);  // İlgili katın kontrol edilmesi

                Araba cikanArabaZK = zKat.Remove();         // Zemin kattan ilgili arabanın çıkartılması
                lstCikanZK.Items.Add(cikanArabaZK.ad);      // Çıkan ilgili arabanın adının listeye yazdırılması

                switch (cikacakKat)                         // Çıkacak olan ilgili katla ilgili işlemler
                {
                case "ustkat":
                    Node  cikanDugum   = uKat.Delete();
                    Araba cikanArabaUK = cikanDugum.Data;
                    lstCikanUK.Items.Add(cikanArabaUK.ad);
                    lstCikanUK.BackColor = Color.LightGreen;
                    zKat.Insert(cikanArabaUK);
                    break;

                case "bodrumkat":
                    Araba cikanArabaBK = bKat.Pop();
                    lstCikanBK.Items.Add(cikanArabaBK.ad);
                    lstCikanBK.BackColor = Color.LightGreen;
                    zKat.Insert(cikanArabaBK);
                    break;

                default:
                    break;
                }
            }

            else
            {
                lstZeminKat.BackColor = Color.Red;
                btnCikar.Enabled      = false;
                btnEkle.Enabled       = true;
            }

            ArabalariListele(); // Kalan arabaların listelenmesi
        }
コード例 #8
0
        public void Insert(Araba yeniAraba)
        {
            if (count == 0)
            {
                front          = 0;
                Kuyruk[++rear] = yeniAraba;
            }

            else if (rear == size - 1)
            {
                rear         = 0;
                Kuyruk[rear] = yeniAraba;
            }

            else
            {
                Kuyruk[++rear] = yeniAraba;
            }

            count++;
        }
コード例 #9
0
        public Araba Remove()
        {
            sure.Start();
            Araba cikacakAraba = Kuyruk[front];

            Kuyruk[front] = null;

            if (front == size - 1)
            {
                front = 0;
            }

            else
            {
                front++;
            }

            count--;

            sure.Stop();
            return(cikacakAraba);
        }
コード例 #10
0
 public void Push(Araba yeniAraba)
 {
     Yigin[++Top] = yeniAraba;
 }
コード例 #11
0
 public abstract void InsertLast(Araba yeniAraba);