From c100d5a9856f01f1942c53272a0847f7cd2d5af4 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Thu, 11 Sep 2014 19:25:25 +0200 Subject: Expanded the content of some project pages --- source/00_content/pages/projects/trie.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'source/00_content/pages/projects/trie.md') diff --git a/source/00_content/pages/projects/trie.md b/source/00_content/pages/projects/trie.md index 7b30a3a..11e3463 100644 --- a/source/00_content/pages/projects/trie.md +++ b/source/00_content/pages/projects/trie.md @@ -4,6 +4,8 @@ The implementation may be found on [Github] or [cgit]. +A prefix tree or _Trie_ is a data structure that can be used to store a dynamic set in a manner optimized for retrieving all keys with a specific prefix. While those keys are often plain character strings this template based implementation of the prefix tree data structure allows for usage with different types. + ## Current features * Specializable tree element type @@ -11,5 +13,24 @@ The implementation may be found on [Github] or [cgit]. * Builds on the standard library * Unit tests based on GoogleTest +## Usage example + +The following example demonstrates the usage of the `Trie` class template specialized on a key and value type. While the first is obviously required the second may be ommitted if not required. Further usage examples are available as Google-Test based [test cases]. + +~~~ +Trie trie; + +trie.add({1, 1, 1, 1}, 42); +trie.add({1, 2, 1, 2}, 43); +trie.add({2, 3, 4, 5}, 44); +trie.add({2, 3, 1, 2}, 45); + +std::cout << trie.get({1, 1, 1, 1}) << std::endl; // true +std::cout << trie.get({1, 1, 1, 1}).get() << std::endl; // 42 +std::cout << trie.get({1, 2}) << std::endl; // false +~~~ +{: .language-cpp} + [Github]: https://github.com/KnairdA/Trie [cgit]: http://code.kummerlaender.eu/Trie/ +[test cases]: https://github.com/KnairdA/Trie/blob/master/test.cc -- cgit v1.2.3