private void Ziyaret(İkiliAramaAgacDugumu dugum) { tekdugum = ((Kisiler)dugum.veri); dugumler += ((Kisiler)dugum.veri).Ad + ((Kisiler)dugum.veri).Soyad + " "; dugumlerListesi.Add(tekdugum); }
private void PostOrderInt(İkiliAramaAgacDugumu dugum) { if (dugum == null) { return; } PostOrderInt(dugum.sol); PostOrderInt(dugum.sag); Ziyaret(dugum); }
private int ElamanSayisiBulma(İkiliAramaAgacDugumu dugum) { int elemanSayisi = 0; if (dugum != null) { elemanSayisi = 1; elemanSayisi += ElamanSayisiBulma(dugum.sol); elemanSayisi += ElamanSayisiBulma(dugum.sag); } return(elemanSayisi); }
private int DerinlikBulma(İkiliAramaAgacDugumu dugum) { if (dugum == null) { return(0); } else { int solDerinlik = solDerinlik = DerinlikBulma(dugum.sol); int sagDerinlik = sagDerinlik = DerinlikBulma(dugum.sag); if (solDerinlik > sagDerinlik) { return(solDerinlik + 1); } else { return(sagDerinlik + 1); } } }
private İkiliAramaAgacDugumu AraInt(İkiliAramaAgacDugumu dugum, double anahtar) { if (dugum == null) { return(null); } else if (((Kisiler)dugum.veri).TCKimlik == anahtar) { return(dugum); } else if (((Kisiler)dugum.veri).TCKimlik > anahtar) { return(AraInt(dugum.sol, anahtar)); } else { return(AraInt(dugum.sag, anahtar)); } }
public void Ekle(Kisiler 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.TCKimlik == ((Kisiler)tempSearch.veri).TCKimlik) { return; } else if (deger.TCKimlik < ((Kisiler)tempSearch.veri).TCKimlik) { 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.TCKimlik < ((Kisiler)tempParent.veri).TCKimlik) { tempParent.sol = eklenecek; } else { tempParent.sag = eklenecek; } }
private İkiliAramaAgacDugumu Successor(İkiliAramaAgacDugumu silDugum) { İkiliAramaAgacDugumu successorParent = silDugum; İkiliAramaAgacDugumu successor = silDugum.sag; İkiliAramaAgacDugumu current = silDugum.sag; while (!(current.sol == null)) { successorParent = current; successor = current.sol; current = current.sol; } if (!(successor == silDugum.sag)) { successorParent.sol = successor.sag; } else { successorParent.sag = successor.sag; } return(successor); }
public bool Sil(double deger) { İkiliAramaAgacDugumu current = kok; İkiliAramaAgacDugumu parent = kok; bool issol = true; //DÜĞÜMÜ BUL while (((Kisiler)current.veri).TCKimlik != deger) { parent = current; if (deger < ((Kisiler)current.veri).TCKimlik) { 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 == true) { 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.sag; } } else if (current.sol == null) { if (current == kok) { kok = current.sag; } else if (issol) { parent.sol = current.sol; } else { parent.sag = current.sag; } } //DURUM 3: İKİ ÇOCUKLU DÜĞÜM else { İkiliAramaAgacDugumu successor = Successor(current); if (current == kok) { successor.sol = kok.sol; successor.sag = kok.sag; kok = successor; } else if (issol) { successor.sol = current.sol; successor.sag = current.sag; parent.sol = successor; } else { successor.sol = current.sol; successor.sag = current.sag; parent.sag = successor; } } return(true); }
public İkiliAramaAgaci(İkiliAramaAgacDugumu kok) { this.kok = kok; }
public İkiliAramaAgacDugumu(object veri) { this.veri = veri; sol = null; sag = null; }