Esempio n. 1
0
        private void DepthFirst(string traveled, IList <char> state, IList <Word> words, bool surpassedLbound = false, string lbound = null, string ubound = null)
        {
            var copy = new List <char>(state);

            if (Value != char.MinValue)
            {
                state.Add(Value);
            }

            if (EndOfWord)
            {
                var word = traveled + new string(state.ToArray());

                if ((surpassedLbound && word != lbound) || word != ubound)
                {
                    words.Add(new Word(word, PostingsAddress));
                }
            }

            if (LeftChild != null)
            {
                LeftChild.DepthFirst(traveled, state, words);
            }

            if (RightSibling != null)
            {
                RightSibling.DepthFirst(traveled, copy, words);
            }
        }
Esempio n. 2
0
        private void DepthFirst(string traveled, IList <char> state, IList <Word> compressed)
        {
            var copy = new List <char>(state);

            if (Value != char.MinValue)
            {
                state.Add(Value);
            }

            if (EndOfWord)
            {
                var value = traveled + new string(state.ToArray());
                var word  = new Word(value, WordCount, PostingsAddress, Postings);
                compressed.Add(word);
            }

            if (LeftChild != null)
            {
                LeftChild.DepthFirst(traveled, state, compressed);
            }

            if (RightSibling != null)
            {
                RightSibling.DepthFirst(traveled, copy, compressed);
            }
        }
Esempio n. 3
0
        private void DepthFirst(string traveled, IList <char> state, IList <Word> compressed)
        {
            var copy = new List <char>(state);

            state.Add(Value);

            if (EndOfWord)
            {
                compressed.Add(new Word(traveled + new string(state.ToArray())));
            }

            if (LeftChild != null)
            {
                LeftChild.DepthFirst(traveled, state, compressed);
            }

            if (RightSibling != null)
            {
                RightSibling.DepthFirst(traveled, copy, compressed);
            }
        }