| 
				
	
				ci/woodpecker/push/docker Pipeline was successful
				
					Details
				
			 | ||
|---|---|---|
| .. | ||
| include | ||
| src/trie | ||
| test | ||
| Makefile | ||
| README.md | ||
| config.mk | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	Trie design
The underlying data structure is based on a combination of a ternary and a Patricia trie.
- Nodes are classic ternary trie nodes, meaning each node contains a binary search tree
- Each node can define a skip, like a Patricia trie, of at most 8 characters. These skipped characters are stored directly in the structs defining the nodes.
- While the add function relies on the fact that the input is a NULL-terminated C string, the trie itself does not store any NULL bytes.
The goal of this datastructure is to be as optimized as possible for search operations with short (usually < 8 characters) keys, as this is by far the most common operation for a URL shortener/pastebin.