Esempio n. 1
0
    private bool SearchWord(string wordToSearch)
    {
        TrieDataNode currentNode = _root;

        foreach (var ch in wordToSearch.ToCharArray())
        {
            if (currentNode.GetChildWithChar(ch) == null)
            {
                return(false);
            }
            else
            {
                currentNode = currentNode.GetChildWithChar(ch);
            }
        }

        if (currentNode.IsTerminating == true)
        {
            return(true);
        }
        return(false);
    }
Esempio n. 2
0
    private string GetWord(TrieDataNode node, string prefix)
    {
        TrieDataNode currentNode = _root;
        string       result      = "";

        while (currentNode != node)
        {
            for (int i = 0; i < prefix.Length; i++)
            {
                currentNode = currentNode.GetChildWithChar(prefix[i]);
                result     += currentNode.ToString();
            }
        }
        return(result);
    }
Esempio n. 3
0
    public void AddWord(string wordToAdd)
    {
        if (SearchWord(wordToAdd) == true)
        {
            return;
        }

        TrieDataNode currentNode = _root;

        foreach (var ch in wordToAdd.ToCharArray())
        {
            TrieDataNode child = currentNode.GetChildWithChar(ch);
            if (child != null)
            {
                currentNode = child;
            }
            else
            {
                currentNode.AddChild(new TrieDataNode(ch));
                currentNode = currentNode.GetChildWithChar(ch);
            }
        }
        currentNode.IsTerminating = true;
    }
Esempio n. 4
0
    public List <string> Complete(string baseChars)
    {
        TrieDataNode lastNode = _root;

        for (int i = 0; i < baseChars.Length; i++)
        {
            lastNode = lastNode.GetChildWithChar(baseChars[i]);
            if (lastNode == null)
            {
                return(new List <string>());
            }
        }
        List <string> listOfwords = GetListOfWords(lastNode, baseChars);

        listOfwords.Sort();
        return(listOfwords);
    }