Exemplo n.º 1
0
        public int DugumSayisi(IkiliAramaAgacDugumu dugum)
        {
            int count = 0;

            if (dugum != null)
            {
                count  = 1;
                count += DugumSayisi(dugum.sol);
                count += DugumSayisi(dugum.sag);
            }
            return(count);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 private IkiliAramaAgacDugumu YabanciDilAraInt(IkiliAramaAgacDugumu dugum, string anahtar)
 {
     if (dugum == null)
     {
         return(null);
     }
     else if (string.Compare((string)dugum.veri, anahtar) == 0)
     {
         return(dugum);
     }
     else if (string.Compare((string)dugum.veri, anahtar) < 0)
     {
         return(YabanciDilAraInt(dugum.sol, anahtar));
     }
     else
     {
         return(YabanciDilAraInt(dugum.sag, anahtar));
     }
 }
Exemplo n.º 4
0
        private IkiliAramaAgacDugumu Successor(IkiliAramaAgacDugumu silDugum)
        {
            IkiliAramaAgacDugumu successorParent = silDugum;
            IkiliAramaAgacDugumu successor       = silDugum;
            IkiliAramaAgacDugumu current         = silDugum.sag;

            while (current != null)
            {
                successorParent = current;
                successor       = current;
                current         = current.sol;
            }
            if (successor != silDugum.sag)
            {
                successorParent.sol = successor.sag;
                successor.sag       = silDugum.sag;
            }
            return(successor);
        }
Exemplo n.º 5
0
 private IkiliAramaAgacDugumu AraInt(IkiliAramaAgacDugumu dugum, ulong anahtar)
 {
     if (dugum == null)
     {
         return(null);
     }
     else if ((ulong)dugum.veri == anahtar)
     {
         return(dugum);
     }
     else if ((ulong)dugum.veri > anahtar)
     {
         return(AraInt(dugum.sol, anahtar));
     }
     else
     {
         return(AraInt(dugum.sag, anahtar));
     }
 }
Exemplo n.º 6
0
        public int DerinlikHesapla(IkiliAramaAgacDugumu dugum)
        {
            int yukseklik_sag = 0, yukselik_sol = 0;

            if (dugum != null)
            {
                yukseklik_sag = DerinlikHesapla(dugum.sag);
                yukselik_sol  = DerinlikHesapla(dugum.sol);
                if (yukseklik_sag > yukselik_sol)
                {
                    return(yukseklik_sag + 1);
                }
                else
                {
                    return(yukselik_sol + 1);
                }
            }
            else
            {
                return(0);
            }
        }
Exemplo n.º 7
0
        public void Ekle(ulong deger)
        {
            IkiliAramaAgacDugumu tempParent = new IkiliAramaAgacDugumu();
            IkiliAramaAgacDugumu tempSearch = kok;

            while (tempSearch != null)
            {
                tempParent = tempSearch;
                //Deger zaten var, çık.
                if (deger == (ulong)tempSearch.veri)
                {
                    return;
                }
                else if (deger < (ulong)tempSearch.veri)
                {
                    tempSearch = tempSearch.sol;
                }
                else
                {
                    tempSearch = tempSearch.sag;
                }
            }
            IkiliAramaAgacDugumu eklenecek = new IkiliAramaAgacDugumu(deger);

            if (kok == null)
            {
                kok = eklenecek;
            }
            else if (deger < (ulong)tempParent.veri)
            {
                tempParent.sol = eklenecek;
            }
            else
            {
                tempParent.sag = eklenecek;
            }
        }
 public IkiliAramaAgacDugumu(Object veri)
 {
     this.veri = veri;
     sol       = null;
     sag       = null;
 }
Exemplo n.º 9
0
        public bool Sil(ulong deger)
        {
            IkiliAramaAgacDugumu current = kok;
            IkiliAramaAgacDugumu parent  = kok;
            bool issol = true;

            while ((ulong)current.veri != deger)
            {
                parent = current;
                if (deger < (ulong)current.veri)
                {
                    issol   = true;
                    current = current.sol;
                }
                else
                {
                    issol   = false;
                    current = current.sag;
                }
                if (current == null)
                {
                    return(false);
                }
            }
            if (current.sol == null && current.sag == null)
            {
                if (current == kok)
                {
                    kok = null;
                }
                else if (issol)
                {
                    parent.sol = null;
                }
                else
                {
                    parent.sag = null;
                }
            }
            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;
                }
            }
            else
            {
                IkiliAramaAgacDugumu successor = Successor(current);
                if (current == kok)
                {
                    kok = successor;
                }
                else if (issol)
                {
                    parent.sol = successor;
                }
                else
                {
                    parent.sag = successor;
                }
                successor.sol = current.sol;
            }
            return(true);
        }
Exemplo n.º 10
0
 public İkiliAramaAgaci(IkiliAramaAgacDugumu kok)
 {
     this.kok = kok;
 }
Exemplo n.º 11
0
 private void Ziyaret(IkiliAramaAgacDugumu dugum)
 {
     dugumler += dugum.veri + " ";
 }