Пример #1
0
        public List <Kok> getAdayKokler(String giris)
        {
            List <Kok> adaylar    = new List <Kok>(3);
            int        girisIndex = 0;
            KokDugumu  node       = agac.getKokDugumu();

            while (girisIndex < giris.Length)
            {
                node = node.altDugumGetir(giris[girisIndex]);
                if (node == null)
                {
                    break;
                }
                if (node.getKok() != null)
                {
                    // buradaki kodu daha basit ama biraz yavas hale getirdim.
                    if (giris.StartsWith((String)node.getKelime()))
                    {
                        node.tumKokleriEkle(adaylar);
                    }
                }
                girisIndex++;
            }
            return(adaylar);
        }
Пример #2
0
        /**
         * Ağaç üzerinde  yürüyerek ASCII toleranslı karşılaştırma ile
         * kök adaylarını bulur. Rekürsiftir.
         *
         * @param dugum  : başlangıç düğümü
         * @param olusan : Yürüme sırasında oluşan kelime (düğümlerin karakter değerlerinden)
         */
        public void yuru(KokDugumu dugum, String olusan)
        {
            String tester = (olusan + dugum.getHarf()).Trim();

            walkCount++;
            if (dugum.getKok() != null)
            {
                if (logger.IsInfoEnabled)
                {
                    logger.Info("Kok : " + dugum.getKelime());
                }
                if (asciiTolaransliKarsilastir((String)dugum.getKelime(), giris))
                {
                    // Aday kok bulundu.
                    dugum.tumKokleriEkle(adaylar);
                }
                else
                {
                    return;
                }
            }
            else
            {
                if (asciiTolaransliKarsilastir(tester, giris))
                {//TODO böölemi ! idi
                    return;
                }
            }

            int seviye = tester.Length - 1; //TODO böölemi -1 yoktu

            if (seviye == giris.Length)
            {
                return;
            }
            // Uygun tüm alt dallarda yürü
            foreach (KokDugumu altDugum in dugum.altDugumDizisiGetir())
            {
                if (altDugum != null)
                {
                    if (agac.getAlfabe().asciiToleransliKiyasla(altDugum.getHarf(), giris[seviye]))
                    {
                        this.yuru(altDugum, tester);
                    }
                }
            }
        }
Пример #3
0
        /**
         * Ağaç üzerinde  yürüyerek ASCII toleranslı karşılaştırma ile
         * kök adaylarını bulur. Rekürsiftir.
         *
         * @param dugum  : başlangıç düğümü
         * @param olusan : Yürüme sırasında oluşan kelime (düğümlerin karakter değerlerinden)
         */
        public void yuru(KokDugumu dugum, String olusan) 
        {
            String tester = (olusan + dugum.getHarf()).Trim();
            walkCount++;
            if (dugum.getKok() != null) 
            {
                if (logger.IsInfoEnabled) logger.Info("Kok : " + dugum.getKelime());
                if (asciiTolaransliKarsilastir((String) dugum.getKelime(), giris)) 
                {
                    // Aday kok bulundu.
                    dugum.tumKokleriEkle(adaylar);
                }
                else 
                {
                    return;
                }
            }
            else 
            {
                if (asciiTolaransliKarsilastir(tester, giris)) 
                {//TODO böölemi ! idi
                    return;
                }
            }

            int seviye = tester.Length - 1; //TODO böölemi -1 yoktu
            if(seviye == giris.Length) return;
            // Uygun tüm alt dallarda yürü
            foreach (KokDugumu altDugum in dugum.altDugumDizisiGetir()) 
            {
               if (altDugum != null) 
               {
                   if (agac.getAlfabe().asciiToleransliKiyasla(altDugum.getHarf(), giris[seviye]))
                       this.yuru(altDugum, tester);
               }
            }
        }