Esempio n. 1
0
        public void choice(string a, string b)
        {
            locWord   userWord  = new locWord(a);
            valueWord userValue = new valueWord(b, 1);

            uaddWordsToList(userWord, userValue);
        }
Esempio n. 2
0
        static int addWordsToList(locWord a)
        {
            int length = wordList.Count - 1;

            if (length == -1)
            {
                wordList.Add(a);
                return(1);
            }
            if (String.Compare(wordList[length].words, a.words) == 0)
            {
                return(0);
            }
            if (String.Compare(wordList[0].words, a.words) == 1)
            {
                wordList.Insert(0, a);
                return(1);
            }
            if (String.Compare(wordList[length].words, a.words) == -1)
            {
                wordList.Add(a);
                return(1);
            }
            int max = length, min = 0, mid;

            int count = 0;

            while (true)
            {
                if (count == 8000)
                {
                    return(-1);
                }
                mid = (min + max) / 2;
                if (String.Compare(wordList[mid].words, a.words) == -1 && String.Compare(wordList[mid + 1].words, a.words) == -1)
                {
                    min = mid;
                }
                else if (String.Compare(wordList[mid].words, a.words) == 1 && String.Compare(wordList[mid + 1].words, a.words) == 1)
                {
                    max = mid;
                }
                else if (String.Compare(wordList[mid].words, a.words) == 0 || String.Compare(wordList[mid + 1].words, a.words) == 0)
                {
                    return(0);
                }
                else
                {
                    wordList.Insert(mid + 1, a);
                    return(1);
                }
                count++;
            }
        }
Esempio n. 3
0
        int uaddWordsToList(locWord a, valueWord b)
        {
            a.totalTimes++;
            int length = uWordList.Count - 1;

            if (length == -1)
            {
                uWordList.Add(a);
                uaddWordsToLink(a.link, b);
                return(1);
            }
            if (String.Compare(uWordList[length].words, a.words) == 0)
            {
                uWordList[length].totalTimes++;
                uaddWordsToLink(uWordList[length].link, b);
                uWordList[length].link.Sort(dc);
                return(0);
            }
            if (String.Compare(uWordList[0].words, a.words) == 1)
            {
                uWordList.Insert(0, a);
                uaddWordsToLink(a.link, b);
                return(1);
            }
            if (String.Compare(uWordList[length].words, a.words) == -1)
            {
                uWordList.Add(a);
                uaddWordsToLink(a.link, b);
                return(1);
            }
            int max = length, min = 0, mid;
            int count = 0;

            while (true)
            {
                if (count == 8000)
                {
                    return(-1);
                }
                mid = (min + max) / 2;
                if (String.Compare(uWordList[mid].words, a.words) == -1 && String.Compare(uWordList[mid + 1].words, a.words) == -1)
                {
                    min = mid;
                }
                else if (String.Compare(uWordList[mid].words, a.words) == 1 && String.Compare(uWordList[mid + 1].words, a.words) == 1)
                {
                    max = mid;
                }
                else if (String.Compare(uWordList[mid].words, a.words) == 0 || String.Compare(uWordList[mid + 1].words, a.words) == 0)
                {
                    uWordList[mid].totalTimes++;
                    uaddWordsToLink(uWordList[mid].link, b);
                    uWordList[mid].link.Sort(dc);
                }
                else
                {
                    uWordList.Insert(mid + 1, a);
                    uaddWordsToLink(a.link, b);
                    return(1);
                }
                count++;
            }
        }