public override void InsertLast(Arac value) { //Listenin durumuna göre eleman eklemesi yapılır. Dugum tmpHead = new Dugum { Data = value }; Dugum eskiSon = Head; if (Head == null) { Head = tmpHead; Head.Next = Head; } else { while (eskiSon != null) { if (eskiSon.Next != Head) { eskiSon = eskiSon.Next; } else { break; } } eskiSon.Next = tmpHead; tmpHead.Next = Head; } Size++; }
private void btnEkle_Click(object sender, EventArgs e) { //random olarak tüm araçlar eklenmektedir if (a == 0) { for (int i = 1; i <= 45; i++) { Arac a = new Arac(); a.No = i; a.AracRengi = Renkler[r.Next(0, 6)]; if (i < 16) { y.Push(a); } else if (i < 31 && i >= 16) { bk.Insert(a); } else { ds.InsertLast(a); } } } a++; }
public void Push(Arac item) { if (List.Length == Top + 1) { throw new Exception("Bodrum dolu."); } List[++Top] = item; }
public Arac Pop() { Arac temp = List[Top]; List[Top] = null; Top--; return(temp); }
private void btnTcikar_Click(object sender, EventArgs e) { //tüm çıkarma işlemlerinin tek seferde yapılması ve bu esnada geçen zamanın hesaplanması yapılmakta DateTime dtBas = DateTime.Now; for (int i = 0; i < 45; i++) { if (bk.count == 0) { return; } temp = bk.Remove(); lbl1_kat.Text = temp.No + " nolu arac " + temp.AracRengi + " cıktı"; int n = r.Next(1, 3); if (ds.Size == 0 && y.Top != -1) { n = 1; } else if (ds.Size != 0 && y.Top == -1) { n = 2; } else if (ds.Size == 0 && y.Top == -1) { continue; } ; switch (n) { case 1: temp = y.Pop(); bk.Insert(temp); lblBodrum.Text = temp.No + " nolu arac " + temp.AracRengi + " cıktı"; break; case 2: tmp = ds.DeletePos(); bk.Insert(tmp.Data); lbl2_kat.Text = tmp.Data.No + " nolu arac " + tmp.Data.AracRengi + " cıktı"; break; } } a = 0; TimeSpan ts = DateTime.Now.Subtract(dtBas); MessageBox.Show("45 aracın çıkışında geçen süre: " + ts.ToString()); }
public Arac Remove() { if (IsEmpty()) { throw new Exception("kat boş"); } Arac temp = Queue[front]; Queue[front] = null; front++; if (front == 15) { front = 0; } count--; return(temp); }
public void Insert(Arac o) { if (count == size) { throw new Exception("Kat dolu."); } if (front == -1) { front = 0; } rear++; if (rear == 15) { rear = 0; } Queue[rear] = o; count++; }
private void btnCikis_Click(object sender, EventArgs e) { if (bk.count == 0) { return; } temp = bk.Remove(); lbl1_kat.Text = temp.No + " nolu arac " + temp.AracRengi + " cıktı"; //bodrum ve 2.kattan %50 ihtimalle araç çıkışını sağlıyor int n = r.Next(1, 3); if (ds.Size == 0 && y.Top != -1) { n = 1; } else if (ds.Size != 0 && y.Top == -1) { n = 2; } else if (ds.Size == 0 && y.Top == -1) { return; } switch (n) { case 1: temp = y.Pop(); bk.Insert(temp); lblBodrum.Text = temp.No + " nolu arac " + temp.AracRengi + " cıktı"; break; case 2: tmp = ds.DeletePos(); bk.Insert(tmp.Data); lbl2_kat.Text = tmp.Data.No + " nolu arac " + tmp.Data.AracRengi + " cıktı"; break; } a = 0; }
public abstract void InsertLast(Arac value);