public int DugumSayisi(IkiliAramaAgacDugumu dugum) { int count = 0; if (dugum != null) { count = 1; count += DugumSayisi(dugum.sol); count += DugumSayisi(dugum.sag); } return(count); }
public int YaprakSayisi(IkiliAramaAgacDugumu 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); }
public void AltKategoriEkle(AltKategoriler altKategori, ArrayList urunler, Heap siraliUrunler) { //Yeni eklenecek düğümün parent'ı IkiliAramaAgacDugumu tempParent = new IkiliAramaAgacDugumu(); //Kökten başla ve ilerle IkiliAramaAgacDugumu tempSearch = kok; while (tempSearch != null) { tempParent = tempSearch; //Deger zaten var, çık. if (altKategori.dugumNumarasi == tempSearch.veri.dugumNumarasi) { return; } else if (altKategori.dugumNumarasi < tempSearch.veri.dugumNumarasi) { tempSearch = tempSearch.sol; } else { tempSearch = tempSearch.sag; } } IkiliAramaAgacDugumu eklenecek = new IkiliAramaAgacDugumu(altKategori, urunler, siraliUrunler); //Ağaç boş, köke ekle if (kok == null) { kok = eklenecek; } else if (altKategori.dugumNumarasi < tempParent.veri.dugumNumarasi) { tempParent.sol = eklenecek; } else { tempParent.sag = eklenecek; } }
public IkiliAramaAgaci(IkiliAramaAgacDugumu kok) { this.kok = kok; }