Search
 
SCRIPT & CODE EXAMPLE
 

CPP

trie code cpp

// C++ implementation of search and insert
// operations on Trie
#include <bits/stdc++.h>
using namespace std;
 
const int ALPHABET_SIZE = 26;
 
// trie node
struct TrieNode
{
    struct TrieNode *children[ALPHABET_SIZE];
 
    // isEndOfWord is true if the node represents
    // end of a word
    bool isEndOfWord;
};
 
// Returns new trie node (initialized to NULLs)
struct TrieNode *getNode(void)
{
    struct TrieNode *pNode =  new TrieNode;
 
    pNode->isEndOfWord = false;
 
    for (int i = 0; i < ALPHABET_SIZE; i++)
        pNode->children[i] = NULL;
 
    return pNode;
}
 
// If not present, inserts key into trie
// If the key is prefix of trie node, just
// marks leaf node
void insert(struct TrieNode *root, string key)
{
    struct TrieNode *pCrawl = root;
 
    for (int i = 0; i < key.length(); i++)
    {
        int index = key[i] - 'a';
        if (!pCrawl->children[index])
            pCrawl->children[index] = getNode();
 
        pCrawl = pCrawl->children[index];
    }
 
    // mark last node as leaf
    pCrawl->isEndOfWord = true;
}
 
// Returns true if key presents in trie, else
// false
bool search(struct TrieNode *root, string key)
{
    struct TrieNode *pCrawl = root;
 
    for (int i = 0; i < key.length(); i++)
    {
        int index = key[i] - 'a';
        if (!pCrawl->children[index])
            return false;
 
        pCrawl = pCrawl->children[index];
    }
 
    return (pCrawl->isEndOfWord);
}
 
// Driver
int main()
{
    // Input keys (use only 'a' through 'z'
    // and lower case)
    string keys[] = {"the", "a", "there",
                    "answer", "any", "by",
                     "bye", "their" };
    int n = sizeof(keys)/sizeof(keys[0]);
 
    struct TrieNode *root = getNode();
 
    // Construct trie
    for (int i = 0; i < n; i++)
        insert(root, keys[i]);
 
    // Search for different keys
    search(root, "the")? cout << "Yes
" :
                         cout << "No
";
    search(root, "these")? cout << "Yes
" :
                           cout << "No
";
    return 0;
}
Comment

PREVIOUS NEXT
Code Example
Cpp :: ue4 c++ replicate actor variable 
Cpp :: how to change the value of a key in hashmp in c++ 
Cpp :: set of vectors c++ 
Cpp :: friend function in c++ 
Cpp :: text color c++ 
Cpp :: hello world cc++ 
Cpp :: glm has no member value_ptr 
Cpp :: C++ Program to Find the Range of Data Types using Macro Constants 
Cpp :: basic cpp 
Cpp :: how to write int variable c++ 
Cpp :: c++ comment out multiple lines 
Cpp :: C++ cout iostream 
Cpp :: google test assert exception 
Cpp :: Basic Input / Output in C++ 
Cpp :: Character cin(userInput) in c++ 
Cpp :: what is throw in c++ 
Cpp :: Arduino Real TIme Clock 
Cpp :: C++ to specify size and value 
Cpp :: first and last digit of a number in c++ 
Cpp :: how to make a pointer point to a the last value in an array 
Cpp :: valid parentheses in c++ 
Cpp :: Maximum element in a map c++ 
Cpp :: c++ itoa 
Cpp :: reverse in vector c++ 
Cpp :: cpp algorithm iota 
Cpp :: building native binary with il2cpp unity 
Cpp :: c++ file handiling 
Cpp :: Road sign detection and recognition by OpenCV in c 
Cpp :: C++ Detect when user presses arrow key 
Cpp :: argsort c++ 
ADD CONTENT
Topic
Content
Source link
Name
8+8 =