47 lines
1.5 KiB
Plaintext
47 lines
1.5 KiB
Plaintext
|
+==============+
|
||
|
| streecmp |
|
||
|
+==============+
|
||
|
|
||
|
Fast*er* string comparison - an alternative to thousands of strcmp calls
|
||
|
|
||
|
RES: en.wikipedia.org/wiki/Trie
|
||
|
RES: en.wikipedia.org/wiki/Suffix_tree
|
||
|
RES: en.wikipedia.org/wiki/Radix_tree
|
||
|
RES: facweb.cs.depaul.edu/mobasher/classes/csc575/Suffix_Trees/index.html
|
||
|
|
||
|
TECHNICALS
|
||
|
|
||
|
struct nod
|
||
|
* data structure that represents a node of the tree
|
||
|
struct nod *mknod(struct nod *prnt)
|
||
|
* create a child node below given parent node
|
||
|
* returns: pointer to said node or NULL if fails
|
||
|
int mkstr(struct nod *rot, char *str)
|
||
|
* fit string into tree if it does not already exist
|
||
|
* warning: string has to be null-byte terminated
|
||
|
* returns: the assigned ID of the string or -1 if fails
|
||
|
int gentree(struct nod *rot, char *strs)
|
||
|
* generate tree from character seperated strings
|
||
|
* warning: seperation character is '\n'
|
||
|
* returns: 0 if ok or -1 if fails
|
||
|
int streecmp(struct nod *rot, char *str)
|
||
|
* traverse tree and search for str
|
||
|
* returns: id of string or 0 if there is no match
|
||
|
|
||
|
TODO
|
||
|
|
||
|
* Characters "hashmap" to remove linear checking of children nodes
|
||
|
* Remove memory leaks
|
||
|
* Add alloc/free functions
|
||
|
* NULL checking
|
||
|
|
||
|
COMMITS
|
||
|
|
||
|
Each commit is prefixed with an indicator token of what the change is
|
||
|
*mostly* about. List of tokens is:
|
||
|
|
||
|
* repo: change docs or code style
|
||
|
* feat: implement new change
|
||
|
* fix: implement fix for a bug
|
||
|
|