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;
 }