Exemplo n.º 1
0
        private bool _IsWordListed(UNode node, String szWord)
        {
            UNode curNode = node;

            szWord += '\0';
            int  len = szWord.Length;
            int  pos = 0;
            char Herp;
            bool ret = false;

            Herp = szWord[pos];
            while (curNode != null)
            {
                if (curNode.mHerp == Herp)
                {
                    if (curNode.mHerp == '\0')
                    {
                        ret = true;
                        break;
                    }
                    pos++;
                    Herp    = szWord[pos];
                    curNode = curNode.mNext;
                }
                else
                {
                    curNode = curNode.mAlter;
                }
            }
            return(ret);
        }
Exemplo n.º 2
0
        public int Add(String szWord)
        {
            if (szWord.Trim().Length == 0)
            {
                return(0);
            }
            szWord += '\0';
            if (m_RootNode == null)
            {
                m_RootNode       = new UNode();
                m_RootNode.mHerp = szWord[0];
                nodeCnt++;
            }

            UNode curNode = m_RootNode;
            int   pos     = 0;
            char  Herp    = szWord[pos];

            while (true)
            {
                if (curNode.mHerp == Herp)
                {
                    if (Herp == '\0')
                    {
                        if (curNode.mFreq < ushort.MaxValue)
                        {
                            curNode.mFreq++;
                        }
                        if (curNode.mFreq == 1)
                        {
                            m_SozSani++;
                        }
                        break;
                    }
                    pos++;
                    Herp = szWord[pos];
                    if (curNode.mNext == null)
                    {
                        curNode.mNext       = new UNode();
                        curNode.mNext.mHerp = Herp;
                        nodeCnt++;
                    }
                    curNode = curNode.mNext;
                }
                else
                {
                    if (curNode.mAlter == null)
                    {
                        curNode.mAlter       = new UNode();
                        curNode.mAlter.mHerp = Herp;
                        nodeCnt++;
                    }
                    curNode = curNode.mAlter;
                }
            }
            return(curNode.mFreq);
        }
Exemplo n.º 3
0
        public int Add(String szWord, ushort frq)
        {
            szWord += '\0';
            if (m_RootNode == null)
            {
                m_RootNode       = new UNode();
                m_RootNode.mHerp = szWord[0];
                nodeCnt++;
            }

            UNode curNode = m_RootNode;
            int   pos     = 0;
            char  Herp    = szWord[pos];

            while (true)
            {
                if (curNode.mHerp == Herp)
                {
                    if (Herp == '\0')
                    {
                        curNode.mFreq += frq;
                        if (curNode.mFreq == frq)
                        {
                            m_SozSani++;
                        }
                        break;
                    }
                    pos++;
                    Herp = szWord[pos];
                    if (curNode.mNext == null)
                    {
                        curNode.mNext       = new UNode();
                        curNode.mNext.mHerp = Herp;
                        nodeCnt++;
                    }
                    curNode = curNode.mNext;
                }
                else
                {
                    if (curNode.mAlter == null)
                    {
                        curNode.mAlter       = new UNode();
                        curNode.mAlter.mHerp = Herp;
                        nodeCnt++;
                    }
                    curNode = curNode.mAlter;
                }
            }
            return(curNode.mFreq);
        }
Exemplo n.º 4
0
 private void _GetWordCount(UNode curNode)
 {
     if (curNode != null)
     {
         if (curNode.mHerp == 0x0)
         {
             m_SozSani++;
             _GetWordCount(curNode.mAlter);
         }
         else
         {
             _GetWordCount(curNode.mNext);
             _GetWordCount(curNode.mAlter);
         }
     }
 }
Exemplo n.º 5
0
 private void Save(UNode curNode, String Soz)
 {
     if (curNode != null)
     {
         if (curNode.mHerp == 0x0)
         {
             if (curNode.mFreq >= m_FrqTh)
             {
                 m_Out.WriteLine(Soz + "\t" + curNode.mFreq);
             }
             Save(curNode.mAlter, Soz);
         }
         else
         {
             Save(curNode.mNext, Soz + curNode.mHerp);
             Save(curNode.mAlter, Soz);
         }
     }
 }
Exemplo n.º 6
0
 private void GetBarliqSoz(UNode curNode, String Soz)
 {
     if (curNode != null)
     {
         if (curNode.mHerp == 0x0)
         {
             if (curNode.mFreq >= m_FrqTh)
             {
                 hemmeSoz.Add(Soz + "\t" + curNode.mFreq);
             }
             GetBarliqSoz(curNode.mAlter, Soz);
         }
         else
         {
             GetBarliqSoz(curNode.mNext, Soz + curNode.mHerp);
             GetBarliqSoz(curNode.mAlter, Soz);
         }
     }
 }