public İkiliAramaAgacDugumu MaksDeger() { İkiliAramaAgacDugumu tempSag = kok; while (tempSag.sag != null) { tempSag = tempSag.sag; } return(tempSag); }
private void InOrderInt(İkiliAramaAgacDugumu dugum) { if (dugum == null) { return; } InOrderInt(dugum.sol); Ziyaret(dugum); InOrderInt(dugum.sag); }
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); }
public int YaprakSayisi(İkiliAramaAgacDugumu dugum) { int count = 0; if (dugum != null) { if ((dugum.sol == null) && (dugum.sag == null)) { count = 1; } else { count = count + YaprakSayisi(dugum.sol) + YaprakSayisi(dugum.sag); } } return(count); }
private void btnAra_Click(object sender, EventArgs e) { if (aramaAgaci == null) { MessageBox.Show("Öncelikle ağacı oluşturmalısınız!"); return; } İkiliAramaAgacDugumu dugum = aramaAgaci.Ara(Convert.ToInt16(txtAra.Text)); if (dugum != null) { MessageBox.Show(dugum.veri + " düğümü bulundu."); } else { MessageBox.Show(txtAra.Text + " düğümü bulunamadı...."); } }
private void btnMaksDeger_Click(object sender, EventArgs e) { if (aramaAgaci == null) { MessageBox.Show("Öncelikle ağacı oluşturmalısınız!"); return; } İkiliAramaAgacDugumu dugum = aramaAgaci.MaksDeger(); if (dugum != null) { MessageBox.Show("Maksimum değerli " + dugum.veri.ToString() + " düğümü bulundu."); } else { MessageBox.Show("Maksimum değerli düğüm bulunamadı...."); } }
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 İkiliAramaAgacDugumu AraInt(İkiliAramaAgacDugumu dugum, int anahtar) { if (dugum == null) { return(null); } else if ((int)dugum.veri == anahtar) { return(dugum); } else if ((int)dugum.veri > anahtar) { return(AraInt(dugum.sol, anahtar)); } else { return(AraInt(dugum.sag, anahtar)); } }
public void Ekle(int deger) { //Yeni eklenecek düğümün parent'ı İkiliAramaAgacDugumu tempParent = new İkiliAramaAgacDugumu(); //Kökten başla ve ilerle İkiliAramaAgacDugumu tempSearch = kok; while (tempSearch != null) { tempParent = tempSearch; //Deger zaten var, çık. if (deger == (int)tempSearch.veri) { return; } else if (deger < (int)tempSearch.veri) { tempSearch = tempSearch.sol; } else { tempSearch = tempSearch.sag; } } İkiliAramaAgacDugumu eklenecek = new İkiliAramaAgacDugumu(deger); //Ağaç boş, köke ekle if (kok == null) { kok = eklenecek; } else if (deger < (int)tempParent.veri) { tempParent.sol = eklenecek; } else { tempParent.sag = eklenecek; } }
public İkiliAramaAgacDugumu(object veri) { this.veri = veri; sol = null; sag = null; }
public bool Sil(int deger) { İkiliAramaAgacDugumu current = kok; İkiliAramaAgacDugumu parent = kok; bool issol = true; //DÜĞÜMÜ BUL while ((int)current.veri != deger) { parent = current; if (deger < (int)current.veri) { 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 += dugum.veri + " "; }