我想用C來實現節省空間的線索這是我的結構:節省空間的線索
struct node {
char val; //character stored in node
int key; //key value if this character is an end of word
struct node* children[256];
};
當我添加一個節點,它的指數是字符的無符號的字符轉換。例如,如果我想添加「c」,那麼
children[(unsigned char)'c']
是指向新添加的節點的指針。然而,這個實現需要我聲明一個256個元素的節點*數組。我想要做的是:
struct node** children;
,然後添加一個節點,只爲節點的malloc空間,並有
children[(unsigned char)'c']
指向新節點時。問題是,如果我先不給malloc malloc空間,那麼我顯然不能引用任何索引,否則這是一個很大的錯誤。
所以我的問題是:我如何實現一個trie,使它只存儲非空指針給它的子節點?
爲什麼不檢查'children'是否爲NULL? – Drakosha
你有沒有考慮**定向非循環詞圖**?見http://en.wikipedia.org/wiki/Directed_acyclic_word_graph –