solidc
Robust collection of general-purpose cross-platform C libraries and data structures designed for rapid and safe development in C
Loading...
Searching...
No Matches
trie.h
Go to the documentation of this file.
1
6#include "arena.h" // Include the Arena library
7
8#include <stdbool.h> // for bool type
9#include <stdint.h> // for uint32_t
10#include <stdio.h> // for fprintf, stderr
11#include <stdlib.h> // for malloc, free, calloc
12#include <string.h> // for memset
13
15typedef struct _trie trie_t;
16
18typedef struct {
22 size_t count;
24 size_t capacity;
26 size_t limit;
28
34trie_t* trie_create(void);
35
40void trie_destroy(trie_t* trie);
41
48bool trie_insert(trie_t* trie, const char* word);
55bool trie_search(const trie_t* trie, const char* word);
62bool trie_starts_with(const trie_t* trie, const char* prefix);
63
71bool trie_delete(trie_t* trie, const char* word);
72
79uint32_t trie_get_frequency(const trie_t* trie, const char* word);
80
86size_t trie_get_word_count(const trie_t* trie);
92bool trie_is_empty(const trie_t* trie);
93
106const char** trie_autocomplete(const trie_t* trie, const char* prefix, size_t max_suggestions, size_t* out_count,
107 Arena* arena);
char ** suggestions
Definition trie.h:20
struct _trie trie_t
Definition trie.h:15
void trie_destroy(trie_t *trie)
Definition trie.c:129
bool trie_starts_with(const trie_t *trie, const char *prefix)
Definition trie.c:164
bool trie_search(const trie_t *trie, const char *word)
Definition trie.c:152
bool trie_is_empty(const trie_t *trie)
Definition trie.c:206
bool trie_insert(trie_t *trie, const char *word)
Definition trie.c:135
uint32_t trie_get_frequency(const trie_t *trie, const char *word)
Definition trie.c:193
size_t trie_get_word_count(const trie_t *trie)
Definition trie.c:205
trie_t * trie_create(void)
Definition trie.c:117
const char ** trie_autocomplete(const trie_t *trie, const char *prefix, size_t max_suggestions, size_t *out_count, Arena *arena)
Definition trie.c:235
bool trie_delete(trie_t *trie, const char *word)
Definition trie.c:176