-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtrie.h
More file actions
72 lines (51 loc) · 1.43 KB
/
trie.h
File metadata and controls
72 lines (51 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#ifndef __TRIE_H__
#define __TRIE_H__
typedef struct _SList{
void *data;
struct _SList* next;
} SList;
typedef struct _trie{
unsigned char letra;
unsigned int code;
SList *hijos;
struct _trie *padre;
} Trie;
#define slist_data(l) (l)->data
#define slist_next(l) (l)->next
/**
* Agrega un elemento al inicio de la lista, en complejidad O(1).
* Nota: una lista vacia se representa con (SList *) NULL
*/
SList *slist_append(SList *list, void* data);
/**
* Crea un nuevo nodo cuya letra es el caracter pasado por argumento y no tiene hijos, en complejidad O(1).
* Nota: un trie vacio se representa con (Trie *) NULL.
**/
Trie *new_trie(unsigned char c);
/**
* Inicializa un diccionario con los 256 caracteres de 8 bits.
*/
Trie *initialize();
/**
* Devuelve el codigo correspondiente a la cadena pasada por argumento en el Trie pasado por argumento.
* Si la cadena no se encuentra en el trie la agrega y devuelve -1.
*/
unsigned int check_add(Trie *trie, unsigned char *w,int sz);
/**
* Devuelve el Trie correspondiente a la cadena pasada por argumento en el Trie pasado por argumento.
* Si la cadena no se encuentra en el trie la agrega.
*/
Trie *add_d(Trie* trie, unsigned char *w, int sz);
/**
* Destruccion del trie.
*/
void trie_destroy(Trie* node);
/**
* Devuelve el valor de COD_ACT.
*/
int cod_act(void);
/**
* Destruye el trie y crea un nuevo trie
*/
Trie *re_initialize(Trie *t);
#endif /* __TRIE_H__ */