SlideShare a Scribd company logo
1 of 168
DATA STRUCTURE
TRIE
Name: Mahadi Hassan
ID: 1320133042
&
Name: Mahmud Rahman Parag
ID: 1320900042
What Is TRIE?
Trie Is An Efficient Information Retrieval Data Structure Also Called
Digital Tree And Sometimes Radix Tree Or Prefix Tree (As They Can
Be Searched By Prefixes), Is An Ordered Tree Data Structure That Is
Used To Store A Dynamic Set Or Associative Array Where The Keys
Are Usually Strings.
Why Trie Data Structure?
• Searching trees in general favor keys which are of fixed size
since this leads to efficient storage management.
• However in case of applications which are retrieval based and
which call for keys varying length, tries provide better options.
• Tries are also called as Lexicographic Search trees.
• The name trie (pronounced as “try”)originated from the word
“retrieval”.
TYPES OF TRIE
1.Standard Tries
2.Compressed Tries
3.Suffix Tries
STANDARD TRIE
The Standard Trie For A Set Of Strings S Is An Ordered Tree Such That:
Each Node Labeled With A Character (Without Root).
The Children Of A Node Are Alphabetically Ordered.
The Paths From The External Nodes To The Root Yield The Strings Of S
EXAMPLE:
Standard Trie For A Set Of Strings S
S = { bear, bell, bid, bull, buy, sell, stock, stop }
TIME COMPLEXITY
A Standard Trie Uses O(n) Space. Operations (find, insert, remove) Take Time
O(dm) Each, Where:
n = Total Size Of The Strings In S,
m = Size Of The String Parameter Of The Operation
d = Alphabet Size
TRIE SPECIFICATION
Operations:
addWord
Function Adds word to an .
Postcondition Trie is not full
searchWord
Function Search a word in the trie
Postcondition Returns true if the world is found and false otherwise.
deleteWord
Function Delete a word in the trie
Postcondition Trie is not empty
TRIE SPECIFICATION
Operations:
print
Function Print the word in the trie
Postcondition Trie either maybe full or not
NODE STRUCTURE
Class Node
{
public:
char value;
bool end;
Node *children[26];
}
The Character Value (A – Z) / (a – z).
Indicates Whether This Node Completes A Word
Represents The 26 Letters In The Alphabet
NODE STRUCTURE
char value
bool end
0 1 2 3 4 5 6 7 8 9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
Character
Data
Boolean
Data
A Node Type
Pointer
Array

0
INSERTION
INSERTION ALGORITHM
Insert: Apple
First Create A Root That Has Empty String And Every Single Pointer Array
Must Point To The NULL (Default). And Boolean Value Of Every Node Must Be
false By Default.
false
0 …
1
0
…
2
0
…
2
6
NULL
INSERTION ALGORITHM
Insert: Apple
Root
INSERTION ALGORITHM
Insert: Apple
Second Convert All Of The String’s Character To Uppercase Or To Lowercase.
char currentChar = tolower(word.at(i));
INSERTION ALGORITHM
Insert: Apple
Second Convert All Of The String’s Character To Uppercase Or To Lowercase.
char currentChar = tolower(word.at(i));
Here, Suppose string s = “Apple” And Length Of String Is 5 So……….
INSERTION ALGORITHM
Insert: Apple
Second Convert All Of The String’s Character To Uppercase Or To Lowercase.
char currentChar = tolower(word.at(i));
Here, Suppose string s = “Apple” And Length Of String Is 5 So……….
s[0] = A, s[1] = p, s[2] = p, s[3] = l, s[4] = e
INSERTION ALGORITHM
Insert: Apple
Second Convert All Of The String’s Character To Uppercase Or To Lowercase.
char currentChar = tolower(word.at(i));
A p p l e
0 1 2 3 4
Here, Suppose string s = “Apple” And Length Of String Is 5 So……….
s[0] = A, s[1] = p, s[2] = p, s[3] = l, s[4] = e
INSERTION ALGORITHM
Insert: Apple
A p p l e
0 1 2 3 4
INSERTION ALGORITHM
Insert: Apple
A p p l e
0 1 2 3 4
char currentChar = tolower(word.at(0));
currentChar a
INSERTION ALGORITHM
Insert: Apple
Then Get The Correct Index For The Appropriate Character
int index = currentChar - 'a';
So……….
currentChar a
int index = currentChar - 'a'; int index = a - 'a';
int index = 0;
INSERTION ALGORITHM
Insert: Apple
Declare A Pointer Node Type Pointer Variable That Point To The Root
Node *currentNode = root;
RootcurrentNode
Pointing To
INSERTION ALGORITHM
Insert: Apple
Root
currentNode
INSERTION ALGORITHM
Insert: Apple
if (currentNode->children[0] != NULL)
{
currentNode = currentNode->children[0];
}
false
0 …
1
0
…
2
0
…
2
6
NULL
If 0 Pointing To The NULL?
Check If The Current Node Has The Current Character As One Of Its
Descendants
INSERTION ALGORITHM
Insert: Apple
if (currentNode->children[0] != NULL)
{
currentNode = currentNode->children[0];
}
Is 0 Pointing To The NULL?
YES!
So IF Statement Won’t Execute…………
And The Current Node Doesn't have the current
character as one of its descendants
Here 0 Is The Index Value ( a – ‘a’ )
Check If The Current Node Has The Current Character As One Of Its
Descendants
false
0 …
1
0
…
2
0
…
2
6
NULL
INSERTION ALGORITHM
Insert: Apple
else
{
Node *newNode = new Node(currentChar);
currentNode->children[0] = newNode;
currentNode = newNode;
}
So………. Node Constructor
INSERTION ALGORITHM
Insert: Apple
Node *newNode = new Node(currentChar);
So……….
currentChar a
Node(curre
ntChar)
INSERTION ALGORITHM
Insert: Apple
Node *newNode = new Node(currentChar);
So……….
currentChar a
aNode(curre
ntChar)
INSERTION ALGORITHM
Insert: Apple
Node *newNode = new Node(currentChar);
So……….
currentChar a
aNode(curre
ntChar)
anewNode
All 26 Children Of newNode Will Point To The NULL
INSERTION ALGORITHM
Insert: Apple
currentNode->children[0] = newNode;
So……….
anewNode RootcurrentNode
0
INSERTION ALGORITHM
Insert: Apple
currentNode->children[0] = newNode;
So……….
a
newNode Root
0
currentNode
INSERTION ALGORITHM
Insert: Apple
currentNode = newNode;
So……….
a
newNode Root
0
currentNode
INSERTION ALGORITHM
Insert: Apple
if (i == word.size() - 1)
{
currentNode->end = true;
}
Now Check If It Is The Last Character Of The Word Has Been Reached
0 == 4? NO  Won’t Execute
INSERTION ALGORITHM
Insert: Apple
So……….
a
newNode Root
0
currentNode
bool end will be false
INSERTION ALGORITHM
Insert: Apple
Root
0
acurrentNode
INSERTION ALGORITHM
Insert: Apple
A p p l e
0 1 2 3 4
char currentChar = tolower(word.at(1));
currentChar p
INSERTION ALGORITHM
Insert: Apple
Then Get The Correct Index For The Appropriate Character
int index = currentChar - 'a';
So……….
currentChar p
int index = currentChar - 'a'; int index = p - 'a';
int index = 15;
INSERTION ALGORITHM
Insert: Apple
if (currentNode->children[15] != NULL)
{
currentNode = currentNode->children[15];
}
a
false
1
5
…
1
0
…
2
0
…
2
6
NULL
If 15 Pointing To The NULL?
Check If The Current Node Has The Current Character As One Of Its
Descendants
INSERTION ALGORITHM
Insert: Apple
if (currentNode->children[15] != NULL)
{
currentNode = currentNode->children[15];
}
Check If The Current Node Has The Current Character As One Of Its
Descendants
a
false
1
5
…
1
0
…
2
0
…
2
6
Is 15 Pointing To The NULL?
YES!
So IF Statement Won’t Execute…………
And The Current Node Doesn't have the current
character as one of its descendants
Here 15 Is The Index Value ( p – ‘a’ )
NULL
INSERTION ALGORITHM
Insert: Apple
else
{
Node *newNode = new Node(currentChar);
currentNode->children[15] = newNode;
currentNode = newNode;
}
So………. Node Constructor
INSERTION ALGORITHM
Insert: Apple
Node *newNode = new Node(currentChar);
So……….
currentChar p
Node(curre
ntChar)
INSERTION ALGORITHM
Insert: Apple
Node *newNode = new Node(currentChar);
So……….
currentChar p
pNode(curre
ntChar)
INSERTION ALGORITHM
Insert: Apple
Node *newNode = new Node(currentChar);
So……….
currentChar p
pNode(curre
ntChar)
pnewNode
All 26 Children Of newNode Will Point To The NULL
INSERTION ALGORITHM
Insert: Apple
currentNode->children[15] = newNode;
So……….
pnewNode acurrentNode
1
5
INSERTION ALGORITHM
Insert: Apple
currentNode->children[15] = newNode;
So……….
p
newNode a
1
5
currentNode
INSERTION ALGORITHM
Insert: Apple
currentNode = newNode;
So……….
p
newNode a
1
5
currentNode
INSERTION ALGORITHM
Insert: Apple
if (i == word.size() - 1)
{
currentNode->end = true;
}
Now Check If It Is The Last Character Of The Word Has Been Reached
1 == 4? NO  Won’t Execute
INSERTION ALGORITHM
Insert: Apple
So……….
p
newNode a
1
5
currentNode
bool end will be false
INSERTION ALGORITHM
Insert: Apple
Root
0
a
1
5
p
currentNode
INSERTION ALGORITHM
Insert: Apple
SIMILARLY
INSERTION ALGORITHM
Insert: Apple
Root
0
a
1
5
p
1
5
p
INSERTION ALGORITHM
Insert: Apple
Root
0
a
1
5
p
1
5
p
1
1
l
INSERTION ALGORITHM
Insert: Apple
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
INSERTION ALGORITHM
Insert: Apple
if (i == word.size() - 1)
{
currentNode->end = true;
}
Now Check If It Is The Last Character Of The Word Has Been Reached
4 == 4? YES  Will Execute
INSERTION ALGORITHM
Insert: Apple
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
INSERTION ALGORITHM
Now Insert: Army
INSERTION ALGORITHM
Insert: Army
A r m y
0 1 2 3
INSERTION ALGORITHM
Insert: Army
A r m y
0 1 2 3
char currentChar = tolower(word.at(0));
currentChar a
INSERTION ALGORITHM
Insert: Army
Then Get The Correct Index For The Appropriate Character
int index = currentChar - 'a';
So……….
currentChar a
int index = currentChar - 'a'; int index = a - 'a';
int index = 0;
INSERTION ALGORITHM
Insert: Army
Declare A Pointer Node Type Pointer Variable That Point To The Root
Node *currentNode = root;
RootcurrentNode
Pointing To
DELETE ALGORITHM
Delete: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
currentNode
INSERTION ALGORITHM
Insert: Army
if (currentNode->children[0] != NULL)
{
currentNode = currentNode->children[0];
}
false
0 …
1
0
…
2
0
…
2
6
NULL
If 0 Pointing To The NULL?
Check If The Current Node Has The Current Character As One Of Its
Descendants
INSERTION ALGORITHM
Insert: Army
if (currentNode->children[0] != NULL)
{
currentNode = currentNode->children[0];
}
Is 0 Pointing To The NULL?
NO!
So IF Statement Will Execute…………
Here 0 Is The Index Value ( a – ‘a’ )
Check If The Current Node Has The Current Character As One Of Its
Descendants
false
0 …
1
0
…
2
0
…
2
6
NULL
INSERTION ALGORITHM
Insert: Army
currentNode = currentNode->children[0];
So……….
INSERTION ALGORITHM
Insert: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
currentNode
bool end will be True
INSERTION ALGORITHM
Insert: Army
if (i == word.size() - 1)
{
currentNode->end = true;
}
Now Check If It Is The Last Character Of The Word Has Been Reached
0 == 3? NO  Won’t Execute
INSERTION ALGORITHM
Insert: Army
A r m y
0 1 2 3
char currentChar = tolower(word.at(1));
currentChar r
INSERTION ALGORITHM
Insert: Army
Then Get The Correct Index For The Appropriate Character
int index = currentChar - 'a';
So……….
currentChar r
int index = currentChar - 'a'; int index = r - 'a';
int index = 17;
INSERTION ALGORITHM
Insert: Army
if (currentNode->children[17] != NULL)
{
currentNode = currentNode->children[17];
}
a
false
1
7
…
1
0
…
2
0
…
2
6
NULL
If 15 Pointing To The NULL?
Check If The Current Node Has The Current Character As One Of Its
Descendants
INSERTION ALGORITHM
Insert: Army
if (currentNode->children[17] != NULL)
{
currentNode = currentNode->children[17];
}
Check If The Current Node Has The Current Character As One Of Its
Descendants
a
false
1
7
…
1
0
…
2
0
…
2
6
Is 17 Pointing To The NULL?
YES!
So IF Statement Won’t Execute…………
And The Current Node Doesn't have the current
character as one of its descendants
Here 17 Is The Index Value ( r – ‘a’ )
NULL
INSERTION ALGORITHM
Insert: Army
else
{
Node *newNode = new Node(currentChar);
currentNode->children[17] = newNode;
currentNode = newNode;
}
So………. Node Constructor
INSERTION ALGORITHM
Insert: Army
Node *newNode = new Node(currentChar);
So……….
currentChar r
Node(curre
ntChar)
INSERTION ALGORITHM
Insert: Army
Node *newNode = new Node(currentChar);
So……….
currentChar r
rNode(curre
ntChar)
INSERTION ALGORITHM
Insert: Army
Node *newNode = new Node(currentChar);
So……….
currentChar r
rNode(curre
ntChar)
rnewNode
All 26 Children Of newNode Will Point To The NULL
INSERTION ALGORITHM
Insert: Army
currentNode->children[17] = newNode;
So……….
INSERTION ALGORITHM
Insert: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
currentNode
INSERTION ALGORITHM
Insert: Army
currentNode = newNode;
So……….
INSERTION ALGORITHM
Insert: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
currentNode
INSERTION ALGORITHM
Insert: Army
if (i == word.size() - 1)
{
currentNode->end = true;
}
Now Check If It Is The Last Character Of The Word Has Been Reached
1 == 3? NO  Won’t Execute
INSERTION ALGORITHM
Insert: Army
SIMILARLY
INSERTION ALGORITHM
Insert: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
INSERTION ALGORITHM
Insert: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
INSERTION ALGORITHM
Insert: Army
if (i == word.size() - 1)
{
currentNode->end = true;
}
Now Check If It Is The Last Character Of The Word Has Been Reached
3 == 3? YES  Will Execute
INSERTION ALGORITHM
Insert: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
DELETION
DELETION ALGORITHM
Delete: Army
A r m y
0 1 2 3
char currentChar = tolower(word.at(0));
currentChar a
DELETION ALGORITHM
Delete: Army
Then Get The Correct Index For The Appropriate Character
int index = currentChar - 'a';
So……….
currentChar a
int index = currentChar - 'a'; int index = a - 'a';
int index = 0;
DELETION ALGORITHM
Delete: Army
Declare A Pointer Node Type Pointer Variable That Point To The Root
Node *currentNode = root;
RootcurrentNode
Pointing To
DELETION ALGORITHM
Delete: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
currentNode
DELETION ALGORITHM
Delete: Army
if (currentNode->children[0] != NULL)
{
currentNode = currentNode->children[0];
}
false
0 …
1
0
…
2
0
…
2
6
NULL
If 0 Pointing To The NULL?
Check If The Current Node Has The Current Character As One Of Its
Descendants
DELETION ALGORITHM
Delete: Army
if (currentNode->children[0] != NULL)
{
currentNode = currentNode->children[0];
}
Is 0 Pointing To The NULL?
NO!
So IF Statement Will Execute…………
Here 0 Is The Index Value ( a – ‘a’ )
Check If The Current Node Has The Current Character As One Of Its
Descendants
false
0 …
1
0
…
2
0
…
2
6
NULL
DELETION ALGORITHM
Delete: Army
currentNode = currentNode->children[0];
So……….
DELETION ALGORITHM
Delete: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
currentNode
DELETION ALGORITHM
Delete: Army
A r m y
0 1 2 3
char currentChar = tolower(word.at(1));
currentChar r
DELETION ALGORITHM
Delete: Army
Then Get The Correct Index For The Appropriate Character
int index = currentChar - 'a';
So……….
currentChar r
int index = currentChar - 'a'; int index = r - 'a';
int index = 17;
DELETION ALGORITHM
Delete: Army
if (currentNode->children[17] != NULL)
{
currentNode = currentNode->children[17];
}
a
false
1
7
…
1
0
…
2
0
…
2
6
NULL
If 15 Pointing To The NULL?
Check If The Current Node Has The Current Character As One Of Its
Descendants
DELETION ALGORITHM
Delete: Army
if (currentNode->children[17] != NULL)
{
currentNode = currentNode->children[17];
}
Check If The Current Node Has The Current Character As One Of Its
Descendants
a
false
1
7
…
1
0
…
2
0
…
2
6
Is 17 Pointing To The NULL?
NO!
So IF Statement Will Execute…………
Here 17 Is The Index Value ( r – ‘a’ )
NULL
DELETION ALGORITHM
Delete: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
currentNode
DELETION ALGORITHM
Delete: Army
SIMILARLY
DELETION ALGORITHM
Delete: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
currentNode
DELETION ALGORITHM
Delete: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
currentNode
DELETION ALGORITHM
Delete: Army
if (i == word.size() – 1 && currentNode->end)
{
currentNode->end = false;
}
Now Check If It Is The Last Character Of The Word Has Been Reached
3 == 3? && currentNode  end? YES  Will Execute
DELETION ALGORITHM
Delete: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
bool end will be False So Word Couldn’t
Be Found By Search So The Word Is
Deleted.
SEARCH
SEARCHING ALGORITHM
Search: Army
A r m y
0 1 2 3
char currentChar = tolower(word.at(0));
currentChar a
SEARCHING ALGORITHM
SEARCH: Army
Then Get The Correct Index For The Appropriate Character
int index = currentChar - 'a';
So……….
currentChar a
int index = currentChar - 'a'; int index = a - 'a';
int index = 0;
SEARCHING ALGORITHM
Search: Army
Declare A Pointer Node Type Pointer Variable That Point To The Root
Node *currentNode = root;
RootcurrentNode
Pointing To
SEARCHING ALGORITHM
Search: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
currentNode
SEARCHING ALGORITHM
Search: Army
if (currentNode->children[0] != NULL)
{
currentNode = currentNode->children[0];
}
false
0 …
1
0
…
2
0
…
2
6
NULL
If 0 Pointing To The NULL?
Check If The Current Node Has The Current Character As One Of Its
Descendants
SEARCHING ALGORITHM
Search: Army
if (currentNode->children[0] != NULL)
{
currentNode = currentNode->children[0];
}
Is 0 Pointing To The NULL?
NO!
So IF Statement Will Execute…………
Here 0 Is The Index Value ( a – ‘a’ )
Check If The Current Node Has The Current Character As One Of Its
Descendants
false
0 …
1
0
…
2
0
…
2
6
NULL
SEARCHING ALGORITHM
Search: Army
currentNode = currentNode->children[0];
So……….
SEARCHING ALGORITHM
Search: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
currentNode
SEARCHING ALGORITHM
Search: Army
A r m y
0 1 2 3
char currentChar = tolower(word.at(1));
currentChar r
SEARCHING ALGORITHM
Search: Army
Then Get The Correct Index For The Appropriate Character
int index = currentChar - 'a';
So……….
currentChar r
int index = currentChar - 'a'; int index = r - 'a';
int index = 17;
SEARCHING ALGORITHM
Search: Army
if (currentNode->children[17] != NULL)
{
currentNode = currentNode->children[17];
}
a
false
1
7
…
1
0
…
2
0
…
2
6
NULL
If 15 Pointing To The NULL?
Check If The Current Node Has The Current Character As One Of Its
Descendants
SEARCHING ALGORITHM
Search: Army
if (currentNode->children[17] != NULL)
{
currentNode = currentNode->children[17];
}
Check If The Current Node Has The Current Character As One Of Its
Descendants
a
false
1
7
…
1
0
…
2
0
…
2
6
Is 17 Pointing To The NULL?
NO!
So IF Statement Will Execute…………
Here 17 Is The Index Value ( r – ‘a’ )
NULL
SEARCHING ALGORITHM
Search: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
currentNode
SEARCHING ALGORITHM
Search: Army
SIMILARLY
SEARCHING ALGORITHM
Search: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
currentNode
SEARCHING ALGORITHM
Search: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
currentNode
SEARCHING ALGORITHM
Search: Army
if (i == word.size() – 1 && currentNode->end)
{
return true;
}
Now Check If It Is The Last Character Of The Word Has Been Reached
3 == 3? && currentNode  end? YES  Will Execute
SEARCHING ALGORITHM
Search: Army
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
Return True. Item Found !
PRINTING WORD
PRINTING ALGORITHM
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
PRINTING ALGORITHM
Trie::alphabetize(Node * node, string prefix = "")
{
if (node->end)
cout << prefix << endl;
for (int i = 0; i < 26; ++i)
{
if (node->children[i] != NULL)
{
string currentString = prefix + node->children[i]->value;
alphabetize(node->children[i], currentString);
}
}
}
PRINTING ALGORITHM
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
if (node->end) (1)
PRINTING ALGORITHM
Printing Result
CASE RESULT
CASE 1 FALSE
PRINTING ALGORITHM
Trie::alphabetize(Node * node, string prefix = "")
{
if (node->end)
cout << prefix << endl;
for (int i = 0; i < 26; ++i)
{
if (node->children[i] != NULL)
{
string currentString = prefix + node->children[i]->value;
alphabetize(node->children[i], currentString);
}
}
}
PRINTING ALGORITHM
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
if (node->children[0] != NULL) (2)
PRINTING ALGORITHM
Printing Result
CASE RESULT
CASE 1 FALSE
CASE 2 TRUE
string currentString = prefix + node->children[0]->value;
string currentString = “” +a;
string currentString = a;
alphabetize(node->children[0], currentString);
PRINTING ALGORITHM
Trie::alphabetize(Node * node, string prefix = "")
{
if (node->end)
cout << prefix << endl;
for (int i = 0; i < 26; ++i)
{
if (node->children[i] != NULL)
{
string currentString = prefix + node->children[i]->value;
alphabetize(node->children[i], currentString);
}
}
}
PRINTING ALGORITHM
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
if (node->children[1] != NULL) (3)
PRINTING ALGORITHM
Printing Result
CASE RESULT
CASE 3 FALSE
PRINTING ALGORITHM
Trie::alphabetize(Node * node, string prefix = "")
{
if (node->end)
cout << prefix << endl;
for (int i = 0; i < 26; ++i)
{
if (node->children[i] != NULL)
{
string currentString = prefix + node->children[i]->value;
alphabetize(node->children[i], currentString);
}
}
}
PRINTING ALGORITHM
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
if (node->children[2] != NULL) (4)
PRINTING ALGORITHM
Printing Result
CASE RESULT
CASE 4 FALSE
PRINTING ALGORITHM
Trie::alphabetize(Node * node, string prefix = "")
{
if (node->end)
cout << prefix << endl;
for (int i = 0; i < 26; ++i)
{
if (node->children[i] != NULL)
{
string currentString = prefix + node->children[i]->value;
alphabetize(node->children[i], currentString);
}
}
}
PRINTING ALGORITHM
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
if (node->children[15] != NULL)
(17)
PRINTING ALGORITHM
Printing Result
CASE RESULT
CASE 17 TRUE
string currentString = prefix + node->children[15]->value;
string currentString = a + p;
string currentString = ap;
alphabetize(node->children[15], currentString);
PRINTING ALGORITHM
Trie::alphabetize(Node * node, string prefix = "")
{
if (node->end)
cout << prefix << endl;
for (int i = 0; i < 26; ++i)
{
if (node->children[i] != NULL)
{
string currentString = prefix + node->children[i]->value;
alphabetize(node->children[i], currentString);
}
}
}
PRINTING ALGORITHM
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
if (node->children[15] != NULL)
(18)
PRINTING ALGORITHM
Printing Result
CASE RESULT
CASE 18 TRUE
string currentString = prefix + node->children[15]->value;
string currentString = ap + p;
string currentString = app;
alphabetize(node->children[15], currentString);
PRINTING ALGORITHM
SIMILARLY
PRINTING ALGORITHM
Trie::alphabetize(Node * node, string prefix = "")
{
if (node->end)
cout << prefix << endl;
for (int i = 0; i < 26; ++i)
{
if (node->children[i] != NULL)
{
string currentString = prefix + node->children[i]->value;
alphabetize(node->children[i], currentString);
}
}
}
PRINTING ALGORITHM
Root
0
a
1
5
p
1
5
p
1
1
l
4
e
bool end will be True
1
7
r
1
2
m
1
5
y
if (node->children[4] != NULL)
(19)
PRINTING ALGORITHM
Trie::alphabetize(Node * node, string prefix = "")
{
if (node->end)
cout << prefix << endl;
for (int i = 0; i < 26; ++i)
{
if (node->children[i] != NULL)
{
string currentString = prefix + node->children[i]->value;
alphabetize(node->children[i], currentString);
}
}
}
PRINTING ALGORITHM
Printing Result
CASE RESULT
CASE 19 TRUE
string currentString = prefix + node->children[15]->value;
string currentString = appl + e;
string currentString = apple;
alphabetize(node->children[4], currentString);
PRINTING ALGORITHM
Printing Result
Print  apple
PRINTING ALGORITHM
SIMILARLY
PRINTING ALGORITHM
Printing Result
Print  apple
Print  army
SOURCE CODETrie.h
#ifndef TRIE_H
#define TRIE_H
#include <iostream>
#include <vector>
#include <string>
#include <assert.h>
#include <new>
using namespace std;
class Node
{
public:
char value;
bool end;
Node *children[26];
Node(char value);
};
class Trie
{
public:
Trie();
void addWord(string word);
bool searchForWord(string word);
void deleteWord(string word);
Node *getRoot();
void alphabetize(Node *, string);
private:
Node *root;
};
#endif // TRIE_H
SOURCE CODETrie.c
#ifndef TRIE_CPP
#define TRIE_CPP
#include <iostream>
#include "trie.h"
using namespace std;
Node::Node(char value)
{
this->value = value;
end = false;
for(int i = 0; i < 26; ++i)
{
children[i] = NULL;
}
}
Trie::Trie()
{
root = new Node(' ');
root->end = true;
}
Node *Trie::getRoot()
{
return root;
}
SOURCE CODETrie.c
void Trie::addWord(string word)
{
Node * currentNode = root;
for (int i = 0; i < (int)word.size(); ++i)
{
char currentChar = tolower(word.at(i));
int index = currentChar - 'a';
assert(index >= 0); // Makes sure the character is between a-z
if (currentNode->children[index] != NULL)
{
// check if the current node has the current character as one of its
decendants
currentNode = currentNode->children[index];
}
else
{
// the current node doesn't have the current character as one of its
decendants
Node * newNode = new Node(currentChar);
currentNode->children[index] = newNode;
currentNode = newNode;
}
if (i == (int)word.size() - 1)
{
// the last character of the word has been reached
currentNode->end = true;
}
}
}
SOURCE CODETrie.c
bool Trie::searchForWord(string word)
{
Node *currentNode = root;
for(int i = 0; i < (int)word.size(); ++i)
{
char currentChar = tolower(word.at(i));
int index = currentChar - 'a';
assert(index >= 0);
if(currentNode->children[index] != NULL)
{
currentNode = currentNode->children[index];
}
else
{
return false;
}
if(i == (int)word.size() - 1 && !currentNode->end)
{
return false;
}
}
return true;
}
SOURCE CODETrie.c
void Trie::deleteWord(string word)
{
Node *currentNode = root;
for(int i = 0; i < (int)word.size(); ++i)
{
char currentChar = tolower(word.at(i));
int index = currentChar - 'a';
assert(index >= 0);
if(currentNode->children[index] != NULL)
{
currentNode = currentNode->children[index];
}
else
{
return;
}
if(i == (int)word.size() - 1 && currentNode->end)
{
currentNode->end = false;
}
}
}
SOURCE CODETrie.c
void Trie::alphabetize(Node *node, string prefix = "")
{
if (node->end)
cout << prefix << endl;
for (int i = 0; i < 26; ++i)
{
if (node->children[i] != NULL)
{
string currentString = prefix + node->children[i]->value;
alphabetize(node->children[i], currentString);
}
}
}
#endif // TRIE_CPP
SOURCE CODEMain.cpp
#include <iostream>
#include “trie.h”
using namespace std;
int main()
{
Trie * t = new Trie();
t->addWord("Carlos");
t->addWord("Perea");
t->addWord("Hello");
t->addWord("Ball");
t->addWord("Balloon");
t->addWord("Show");
t->addWord("Shower");
t->alphabetize(t->getRoot(), "");
t-> alphabetize(t->getRoot(), "");
return 0;
}
OUTPUT
APPLICATIONS OF TRIE DATA
STRUCTURES
TRIES IN AUTO COMPLETE
• Since a trie is a tree-like data structure in which each node
contains an array of pointers, one pointer for each character in the
alphabet.
• Starting at the root node, we can trace a word by following
pointers corresponding to the letters in the target word.
• Starting from the root node, you can check if a word exists in the
trie easily by following pointers corresponding to the letters in the
TRIES IN AUTO COMPLETE
• Auto-complete functionality is used widely over the internet and
mobile apps. A lot of websites and apps try to complete your input
as soon as you start typing.
• All the descendants of a node have a common prefix of the string
associated with that node.
TRIES IN AUTO COMPLETE
AUTO COMPLETE IN GOOGLE SEARCH
WHY TRIES IN AUTO COMPLETE
• Implementing auto complete using a trie is easy.
• We simply trace pointers to get to a node that represents the string
the user entered. By exploring the trie from that node down, we
can enumerate all strings that complete user’s input.
AUTOMATIC COMMAND COMPLETION
• When using an operating system such as Unix or DOS, we type in
system commands to accomplish certain tasks. For example, the
Unix and DOS command cd may be used to change the current
directory.
SPELL CHECKERS
PHONE BOOK SEARCH
THANKS TO EVRYONE

More Related Content

What's hot

TRIES_data_structure
TRIES_data_structureTRIES_data_structure
TRIES_data_structureddewithaman10
 
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...Umesh Kumar
 
Pattern matching
Pattern matchingPattern matching
Pattern matchingshravs_188
 
Linear and Binary search
Linear and Binary searchLinear and Binary search
Linear and Binary searchNisha Soms
 
Chapter 11 - Sorting and Searching
Chapter 11 - Sorting and SearchingChapter 11 - Sorting and Searching
Chapter 11 - Sorting and SearchingEduardo Bergavera
 
Red black tree
Red black treeRed black tree
Red black treeRajendran
 
Data Structures - Lecture 7 [Linked List]
Data Structures - Lecture 7 [Linked List]Data Structures - Lecture 7 [Linked List]
Data Structures - Lecture 7 [Linked List]Muhammad Hammad Waseem
 
Data Structure and Algorithms Binary Search Tree
Data Structure and Algorithms Binary Search TreeData Structure and Algorithms Binary Search Tree
Data Structure and Algorithms Binary Search TreeManishPrajapati78
 
Insertion in singly linked list
Insertion in singly linked listInsertion in singly linked list
Insertion in singly linked listKeval Bhogayata
 
Data Structures with C Linked List
Data Structures with C Linked ListData Structures with C Linked List
Data Structures with C Linked ListReazul Islam
 
Trees (data structure)
Trees (data structure)Trees (data structure)
Trees (data structure)Trupti Agrawal
 
Lecture optimal binary search tree
Lecture optimal binary search tree Lecture optimal binary search tree
Lecture optimal binary search tree Divya Ks
 
Skip lists (Advance Data structure)
Skip lists (Advance Data structure)Skip lists (Advance Data structure)
Skip lists (Advance Data structure)Shubham Shukla
 
linear search and binary search
linear search and binary searchlinear search and binary search
linear search and binary searchZia Ush Shamszaman
 

What's hot (20)

TRIES_data_structure
TRIES_data_structureTRIES_data_structure
TRIES_data_structure
 
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
 
Digital Search Tree
Digital Search TreeDigital Search Tree
Digital Search Tree
 
Pattern matching
Pattern matchingPattern matching
Pattern matching
 
Linear and Binary search
Linear and Binary searchLinear and Binary search
Linear and Binary search
 
Trie Data Structure
Trie Data Structure Trie Data Structure
Trie Data Structure
 
Chapter 11 - Sorting and Searching
Chapter 11 - Sorting and SearchingChapter 11 - Sorting and Searching
Chapter 11 - Sorting and Searching
 
Red black tree
Red black treeRed black tree
Red black tree
 
Data Structures - Lecture 7 [Linked List]
Data Structures - Lecture 7 [Linked List]Data Structures - Lecture 7 [Linked List]
Data Structures - Lecture 7 [Linked List]
 
Big o notation
Big o notationBig o notation
Big o notation
 
Data Structure and Algorithms Binary Search Tree
Data Structure and Algorithms Binary Search TreeData Structure and Algorithms Binary Search Tree
Data Structure and Algorithms Binary Search Tree
 
Abstract Data Types
Abstract Data TypesAbstract Data Types
Abstract Data Types
 
Tree and graph
Tree and graphTree and graph
Tree and graph
 
Insertion in singly linked list
Insertion in singly linked listInsertion in singly linked list
Insertion in singly linked list
 
Linked list
Linked listLinked list
Linked list
 
Data Structures with C Linked List
Data Structures with C Linked ListData Structures with C Linked List
Data Structures with C Linked List
 
Trees (data structure)
Trees (data structure)Trees (data structure)
Trees (data structure)
 
Lecture optimal binary search tree
Lecture optimal binary search tree Lecture optimal binary search tree
Lecture optimal binary search tree
 
Skip lists (Advance Data structure)
Skip lists (Advance Data structure)Skip lists (Advance Data structure)
Skip lists (Advance Data structure)
 
linear search and binary search
linear search and binary searchlinear search and binary search
linear search and binary search
 

Viewers also liked

Application of hashing in better alg design tanmay
Application of hashing in better alg design tanmayApplication of hashing in better alg design tanmay
Application of hashing in better alg design tanmayTanmay 'Unsinkable'
 
Splay Trees and Self Organizing Data Structures
Splay Trees and Self Organizing Data StructuresSplay Trees and Self Organizing Data Structures
Splay Trees and Self Organizing Data StructuresAmrinder Arora
 
B trees in Data Structure
B trees in Data StructureB trees in Data Structure
B trees in Data StructureAnuj Modi
 
BTree, Data Structures
BTree, Data StructuresBTree, Data Structures
BTree, Data StructuresJibrael Jos
 
Stack Data Structure & It's Application
Stack Data Structure & It's Application Stack Data Structure & It's Application
Stack Data Structure & It's Application Tech_MX
 
Trees data structure
Trees data structureTrees data structure
Trees data structureSumit Gupta
 
KMP - Social Media Marketing Seminar Blogging For Business
KMP - Social Media Marketing Seminar   Blogging For BusinessKMP - Social Media Marketing Seminar   Blogging For Business
KMP - Social Media Marketing Seminar Blogging For BusinessMicrosoft
 
Advance data structure
Advance data structureAdvance data structure
Advance data structureashok kumar
 
Lecture storage-buffer
Lecture storage-bufferLecture storage-buffer
Lecture storage-bufferKlaas Krona
 
Introduction of suffix tree
Introduction of suffix treeIntroduction of suffix tree
Introduction of suffix treeLiou Shu Hung
 
Packet forwarding in wan.46
Packet  forwarding in wan.46Packet  forwarding in wan.46
Packet forwarding in wan.46myrajendra
 
Avl trees
Avl treesAvl trees
Avl treesppreeta
 

Viewers also liked (20)

Trie tree
Trie treeTrie tree
Trie tree
 
Trie (1)
Trie (1)Trie (1)
Trie (1)
 
Application of hashing in better alg design tanmay
Application of hashing in better alg design tanmayApplication of hashing in better alg design tanmay
Application of hashing in better alg design tanmay
 
Lec18
Lec18Lec18
Lec18
 
Splay trees
Splay treesSplay trees
Splay trees
 
Splay Trees and Self Organizing Data Structures
Splay Trees and Self Organizing Data StructuresSplay Trees and Self Organizing Data Structures
Splay Trees and Self Organizing Data Structures
 
B trees in Data Structure
B trees in Data StructureB trees in Data Structure
B trees in Data Structure
 
BTree, Data Structures
BTree, Data StructuresBTree, Data Structures
BTree, Data Structures
 
Splay Tree
Splay TreeSplay Tree
Splay Tree
 
B tree
B treeB tree
B tree
 
Stack Data Structure & It's Application
Stack Data Structure & It's Application Stack Data Structure & It's Application
Stack Data Structure & It's Application
 
Trees data structure
Trees data structureTrees data structure
Trees data structure
 
Shishirppt
ShishirpptShishirppt
Shishirppt
 
KMP - Social Media Marketing Seminar Blogging For Business
KMP - Social Media Marketing Seminar   Blogging For BusinessKMP - Social Media Marketing Seminar   Blogging For Business
KMP - Social Media Marketing Seminar Blogging For Business
 
Advance data structure
Advance data structureAdvance data structure
Advance data structure
 
Lecture storage-buffer
Lecture storage-bufferLecture storage-buffer
Lecture storage-buffer
 
Introduction of suffix tree
Introduction of suffix treeIntroduction of suffix tree
Introduction of suffix tree
 
Packet forwarding in wan.46
Packet  forwarding in wan.46Packet  forwarding in wan.46
Packet forwarding in wan.46
 
2 4 Tree
2 4 Tree2 4 Tree
2 4 Tree
 
Avl trees
Avl treesAvl trees
Avl trees
 

Similar to Trie Data Structure

Python - Getting to the Essence - Points.com - Dave Park
Python - Getting to the Essence - Points.com - Dave ParkPython - Getting to the Essence - Points.com - Dave Park
Python - Getting to the Essence - Points.com - Dave Parkpointstechgeeks
 
Functional aspects of java 8
Functional aspects of java 8Functional aspects of java 8
Functional aspects of java 8Jobaer Chowdhury
 
Project Lambda: Evolution of Java
Project Lambda: Evolution of JavaProject Lambda: Evolution of Java
Project Lambda: Evolution of JavaCan Pekdemir
 
ObjectivesMore practice with recursion.Practice writing some tem.docx
ObjectivesMore practice with recursion.Practice writing some tem.docxObjectivesMore practice with recursion.Practice writing some tem.docx
ObjectivesMore practice with recursion.Practice writing some tem.docxvannagoforth
 
Python+Syntax+Cheat+Sheet+Booklet.pdf
Python+Syntax+Cheat+Sheet+Booklet.pdfPython+Syntax+Cheat+Sheet+Booklet.pdf
Python+Syntax+Cheat+Sheet+Booklet.pdfGanteng tengab
 
Mario Fusco - Lazy Java - Codemotion Milan 2018
Mario Fusco - Lazy Java - Codemotion Milan 2018Mario Fusco - Lazy Java - Codemotion Milan 2018
Mario Fusco - Lazy Java - Codemotion Milan 2018Codemotion
 
Revisiting a data structures in detail with linked list stack and queue
Revisiting a data structures in detail with linked list stack and queueRevisiting a data structures in detail with linked list stack and queue
Revisiting a data structures in detail with linked list stack and queuessuser7319f8
 
Stacks & Queues By Ms. Niti Arora
Stacks & Queues By Ms. Niti AroraStacks & Queues By Ms. Niti Arora
Stacks & Queues By Ms. Niti Arorakulachihansraj
 
Stacks & Queues
Stacks & QueuesStacks & Queues
Stacks & Queuestech4us
 
Real World Haskell: Lecture 7
Real World Haskell: Lecture 7Real World Haskell: Lecture 7
Real World Haskell: Lecture 7Bryan O'Sullivan
 
Chapter 3: basic sorting algorithms data structure
Chapter 3: basic sorting algorithms data structureChapter 3: basic sorting algorithms data structure
Chapter 3: basic sorting algorithms data structureMahmoud Alfarra
 
Stacks queues-1220971554378778-9
Stacks queues-1220971554378778-9Stacks queues-1220971554378778-9
Stacks queues-1220971554378778-9Getachew Ganfur
 
Python quickstart for programmers: Python Kung Fu
Python quickstart for programmers: Python Kung FuPython quickstart for programmers: Python Kung Fu
Python quickstart for programmers: Python Kung Fuclimatewarrior
 

Similar to Trie Data Structure (20)

Python - Getting to the Essence - Points.com - Dave Park
Python - Getting to the Essence - Points.com - Dave ParkPython - Getting to the Essence - Points.com - Dave Park
Python - Getting to the Essence - Points.com - Dave Park
 
Functional aspects of java 8
Functional aspects of java 8Functional aspects of java 8
Functional aspects of java 8
 
Project Lambda: Evolution of Java
Project Lambda: Evolution of JavaProject Lambda: Evolution of Java
Project Lambda: Evolution of Java
 
Arrays
ArraysArrays
Arrays
 
ObjectivesMore practice with recursion.Practice writing some tem.docx
ObjectivesMore practice with recursion.Practice writing some tem.docxObjectivesMore practice with recursion.Practice writing some tem.docx
ObjectivesMore practice with recursion.Practice writing some tem.docx
 
Scala introduction
Scala introductionScala introduction
Scala introduction
 
Python+Syntax+Cheat+Sheet+Booklet.pdf
Python+Syntax+Cheat+Sheet+Booklet.pdfPython+Syntax+Cheat+Sheet+Booklet.pdf
Python+Syntax+Cheat+Sheet+Booklet.pdf
 
Introduction to Erlang
Introduction to ErlangIntroduction to Erlang
Introduction to Erlang
 
Mario Fusco - Lazy Java - Codemotion Milan 2018
Mario Fusco - Lazy Java - Codemotion Milan 2018Mario Fusco - Lazy Java - Codemotion Milan 2018
Mario Fusco - Lazy Java - Codemotion Milan 2018
 
Lazy java
Lazy javaLazy java
Lazy java
 
Lazy Java
Lazy JavaLazy Java
Lazy Java
 
Lazy Java
Lazy JavaLazy Java
Lazy Java
 
Revisiting a data structures in detail with linked list stack and queue
Revisiting a data structures in detail with linked list stack and queueRevisiting a data structures in detail with linked list stack and queue
Revisiting a data structures in detail with linked list stack and queue
 
Stacks & Queues By Ms. Niti Arora
Stacks & Queues By Ms. Niti AroraStacks & Queues By Ms. Niti Arora
Stacks & Queues By Ms. Niti Arora
 
Stacks & Queues
Stacks & QueuesStacks & Queues
Stacks & Queues
 
Real World Haskell: Lecture 7
Real World Haskell: Lecture 7Real World Haskell: Lecture 7
Real World Haskell: Lecture 7
 
Chapter 3: basic sorting algorithms data structure
Chapter 3: basic sorting algorithms data structureChapter 3: basic sorting algorithms data structure
Chapter 3: basic sorting algorithms data structure
 
Stacks queues-1220971554378778-9
Stacks queues-1220971554378778-9Stacks queues-1220971554378778-9
Stacks queues-1220971554378778-9
 
Rana Junaid Rasheed
Rana Junaid RasheedRana Junaid Rasheed
Rana Junaid Rasheed
 
Python quickstart for programmers: Python Kung Fu
Python quickstart for programmers: Python Kung FuPython quickstart for programmers: Python Kung Fu
Python quickstart for programmers: Python Kung Fu
 

Recently uploaded

Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Industrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESIndustrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESNarmatha D
 
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...Amil Baba Dawood bangali
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Steel Structures - Building technology.pptx
Steel Structures - Building technology.pptxSteel Structures - Building technology.pptx
Steel Structures - Building technology.pptxNikhil Raut
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgsaravananr517913
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating SystemRashmi Bhat
 
Industrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptIndustrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptNarmatha D
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 

Recently uploaded (20)

🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Industrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESIndustrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIES
 
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Steel Structures - Building technology.pptx
Steel Structures - Building technology.pptxSteel Structures - Building technology.pptx
Steel Structures - Building technology.pptx
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating System
 
Industrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptIndustrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.ppt
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 

Trie Data Structure