读书人

Trie挑动的血案再论参数

发布时间: 2013-03-13 10:56:58 作者: rapoo

Trie引发的血案——再论参数

看到标题,或许聪明的你会说,参数不就那么回事吗?还要“再论”?

在决定写这篇文章之前,我也是这么认为的,自认为对C/C++的参数传递以及压栈方式了如指掌。

但是总有一些细节,在我们不注意的瞬间,给我们一个深刻的教训。

以前自己写Trie,用的是静态内存,不够灵活,虽然ACM/ICPC或其他算法竞赛都会给出严格的数据范围,避免越界。但是在实际项目中,没有人会知道,没有人能够预测自己有多少用户,自己的数据库中会被用户塞入多少T的数据。所以为了更好的可扩展性,我决定使用动态内存。

下面是我的创建Trie的函数,大家发现问题没有?

void createTree(Node** root){    *root = (Node*)malloc(sizeof(Node));    for (int i = 0; i < char_count; i++)    {        (*root)->val = -1;        (*root)->next[i] = NULL;    }}
看到这里,相信你也明白了吧。
Trie引发的血案,至此结案。


读书人网 >编程

热点推荐