public int YaprakSayisi(İkiliAramaAgacDugumu dugum) { int count = 0; if (dugum != null) { if ((dugum.sol == null) && (dugum.sag == null)) { count = 1; geciciyukseklik++; if (geciciyukseklik > yukseklik) { yukseklik = geciciyukseklik; } geciciyukseklik = -1; } else { geciciyukseklik++; count = count + YaprakSayisi(dugum.sol) + YaprakSayisi(dugum.sag); } } return(count); }
public İkiliAramaAgacDugumu(string veri, ulong id) { this.veri = veri; sol = null; sag = null; this.id = id; }
private void PreOrderInt(İkiliAramaAgacDugumu dugum) { if (dugum == null) { return; } Ziyaret(dugum); PreOrderInt(dugum.sol); PreOrderInt(dugum.sag); }
public İkiliAramaAgacDugumu MaksDeger() { İkiliAramaAgacDugumu tempSag = kok; while (tempSag.sag != null) { tempSag = tempSag.sag; } return(tempSag); }
public İkiliAramaAgacDugumu MinDeger() { İkiliAramaAgacDugumu tempSol = kok; while (tempSol.sol != null) { tempSol = tempSol.sol; } return(tempSol); }
public int DugumSayisi(İkiliAramaAgacDugumu dugum) { int count = 0; if (dugum != null) { count = 1; count += DugumSayisi(dugum.sol); count += DugumSayisi(dugum.sag); } return(count); }
private İkiliAramaAgacDugumu Successor(İkiliAramaAgacDugumu silDugum) { İkiliAramaAgacDugumu successorParent = silDugum; İkiliAramaAgacDugumu successor = silDugum; İkiliAramaAgacDugumu current = silDugum.sag; while (current != null) { successorParent = successor; successor = current; current = current.sol; } if (successor != silDugum.sag) { successorParent.sol = successor.sag; successor.sag = silDugum.sag; } return(successor); }
private void Form1_Load(object sender, EventArgs e) { int j = 0; string[] kategoriler = { "Bilgisayar", "Beyaz Eşya", "Giyim", "Kırtasiye & Ofis", "Yapı Market", "Bahçe", "Tekstil", "Yiyecek" }; string[] urunadlari = { "Dizüstü Bilgisayar", "Masaüstü Bilgisayar", "Buzdolabı", "Çamaşır Makinası", "Gömlek", "Takım Elbise", "Kalem", "Defter", "Boya", "El Aletleri", "Bahçe Sandalyeleri", "Bahçe Takımları", "Perde", "Yorgan", "Et Ürünleri", "Süt Ürünleri" }; string[] urunmarkalari = { "Asus", "Monster", "Beko", "Bosch", "Altınyıldız", "Pierre Cardin", "Faber Castel", "GIPTA", "Marshall", "Stanley", "Comfort", "Sunfun", "Taç", "Karaca", "Emin", "Pınar" }; string[] urunmodel = { "ROG", "ABRA", "B9470", "WAT24480TR", "TAİLORED", "G021GL001.BOSTON.53252.VR033", "Grip", "Quadro", "Mat Silikon", "STDC18LHBK", "Begonya", "Orkide", "Beşiktaşlı", "Real Madridli", "Kuşbaşı", "Peynir" }; int[] urunmikar = { 5, 15, 7, 2, 35, 4, 7, 12, 14, 21, 23, 2, 1, 31, 14, 17 }; int[] urunmaliyet = { 2200, 1200, 250, 450, 20, 150, 14, 10, 15, 100, 35, 140, 25, 40, 14, 7 }; int[] urunsatisfiyati = { 5500, 6000, 1000, 1100, 35, 450, 30, 15, 30, 250, 75, 300, 35, 90, 30, 15 }; string[] urunaciklamalari = { "Intel Core i7 7700HQ 8GB 1TB + 128GB SSD GTX1050Ti Freedos 15.6 FHD Taşınabilir Bilgisayar", "Intel Core i7 7700HQ 8GB 1TB GTX1050Ti Freedos 15.6 FHD Masaüstü Bilgisayar", "9480 KM Neo Frost Buzdolabı", "9 KG 1200 DEVİR A+++ ENERJİ BEYAZ ÇAMAŞIR MAKİNA", "%55 Pamuk, %45 Polyester, Siyah, Klasik Model, Regular Fit", "Asetat : %59 Yun : % 41 Mono Yaka ", "0.7mm Versatil Kalem", " A4 140 Yp. Deri Kapak Spiralli Defter", "İç Cephe Boya 7.5 Lt", "18Volt/2,0Ah Li-ion Çift Akülü Profesyonel Darbeli Matkap", "Üretiminde cam elyaflı hammadde kullanılmıştır", "1 adet camlı masa: 160x90x75 cm 4 adet sandalye: 55x48x92 cm", "Beşiktaş Zebra Perde (Siyah/Beyaz) - 220x260 cm", "Microfiber Yorgan 115x225 cm", "1kg kuzu kuşbaşı", "500gr beyaz peynir" }; cmbUyeOlCinsiyet.SelectedIndex = 0; for (int i = 0; i < 8; i++) { İkiliAramaAgacDugumu d = new İkiliAramaAgacDugumu(); İkiliAramaAgacDugumu d2 = new İkiliAramaAgacDugumu(); Urun u = new Urun(); Urun u2 = new Urun(); Kategori k = new Kategori(); u.UrunAdi = urunadlari[j]; u.Marka = urunmarkalari[j]; u.Model = urunmodel[j]; u.Miktar = urunmikar[j]; u.Maliyet = urunmaliyet[j]; u.SatisFiyati = urunsatisfiyati[j]; u.Aciklaması = urunaciklamalari[j]; u2.UrunAdi = urunadlari[j + 1]; u2.Marka = urunmarkalari[j + 1]; u2.Model = urunmodel[j + 1]; u2.Miktar = urunmikar[j + 1]; u2.Maliyet = urunmaliyet[j + 1]; u2.SatisFiyati = urunsatisfiyati[j + 1]; u2.Aciklaması = urunaciklamalari[j + 1]; k.KategoriIsmi = kategoriler[i]; k.Agac.Ekle(urunadlari[j]); k.Agac.Ara(urunadlari[j]).Urunler.Add(u); k.Agac.Ekle(urunadlari[j + 1]); k.Agac.Ara(urunadlari[j + 1]).Urunler.Add(u2); market.KategoriEkle(k); j += 2; } }
private İkiliAramaAgacDugumu AraInt(İkiliAramaAgacDugumu dugum, string anahtar) { ulong x = IdOlustur(anahtar); if (dugum == null) { return(null); } else if (dugum.id == x) { return(dugum); } else if (dugum.id > x) { return(AraInt(dugum.sol, anahtar)); } else { return(AraInt(dugum.sag, anahtar)); } }
public void Ekle(string deger) { ulong tempId = IdOlustur(deger); İkiliAramaAgacDugumu tempParent = new İkiliAramaAgacDugumu(); İkiliAramaAgacDugumu tempSearch = kok; while (tempSearch != null) { tempParent = tempSearch; if (tempId == tempSearch.id) { return; } else if (tempId < tempSearch.id) { tempSearch = tempSearch.sol; } else { tempSearch = tempSearch.sag; } } İkiliAramaAgacDugumu eklenecek = new İkiliAramaAgacDugumu(deger, tempId); //Ağaç boş, köke ekle if (kok == null) { kok = eklenecek; } else if (tempId < tempParent.id) { tempParent.sol = eklenecek; } else { tempParent.sag = eklenecek; } }
private void button4_Click(object sender, EventArgs e) { bool kontrol = false; İkiliAramaAgacDugumu temp = new İkiliAramaAgacDugumu(); foreach (Kategori k in Form1.market.Kategoriler) { if (k.Agac.Ara(txtKategoriGüncelle.Text) != null) { temp.veri = k.Agac.Ara(txtKategoriGüncelle.Text).veri; temp.Urunler = k.Agac.Ara(txtKategoriGüncelle.Text).Urunler; k.Agac.Sil(txtKategoriGüncelle.Text); } } foreach (Kategori k in Form1.market.Kategoriler) { if (comboBox1.Text == k.KategoriIsmi) { k.Agac.Ekle(temp.veri); foreach (Urun u in temp.Urunler) { kontrol = true; k.Agac.Ara(temp.veri).Urunler.Add(u); } if (kontrol == true) { MessageBox.Show("Kategori Başarıyla Güncellenmiştir..."); } else { MessageBox.Show("Güncelleme Başarısız Oldu..!"); } } } txtKategoriGüncelle.Clear(); }
public bool Sil(string deger) { ulong x = IdOlustur(deger); İkiliAramaAgacDugumu current = kok; İkiliAramaAgacDugumu parent = kok; bool issol = true; //DÜĞÜMÜ BUL while (current.id != x) { parent = current; if (x < current.id) { issol = true; current = current.sol; } else { issol = false; current = current.sag; } if (current == null) { return(false); } } //DURUM 1: YAPRAK DÜĞÜM if (current.sol == null && current.sag == null) { if (current == kok) { kok = null; } else if (issol) { parent.sol = null; } else { parent.sag = null; } } //DURUM 2: TEK ÇOCUKLU DÜĞÜM else if (current.sag == null) { if (current == kok) { kok = current.sol; } else if (issol) { parent.sol = current.sol; } else { parent.sag = current.sol; } } else if (current.sol == null) { if (current == kok) { kok = current.sag; } else if (issol) { parent.sol = current.sag; } else { parent.sag = current.sag; } } //DURUM 3: İKİ ÇOCUKLU DÜĞÜM else { İkiliAramaAgacDugumu successor = Successor(current); if (current == kok) { kok = successor; } else if (issol) { parent.sol = successor; } else { parent.sag = successor; } successor.sol = current.sol; } return(true); }
public İkiliAramaAgaci(İkiliAramaAgacDugumu kok) { this.kok = kok; }
private void Ziyaret(İkiliAramaAgacDugumu dugum) { dugumler.Add(dugum); }