码迷,mamicode.com
首页 > 其他好文 > 详细

TCPL学习毕节:第六章hash表

时间:2015-10-13 13:47:24      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

对于P126的哈希表构成:

 1 struct nlist *install(char *name, char *defn)  
 2 {  
 3     struct nlist *np;  
 4     unsigned hashval;  
 5     if ((np = lookup(name)) == NULL)   
 6     {  
 7         np = (struct nlist *) malloc(sizeof(*np));  
 8         if (np == NULL || (np->name = strdup(name)) == NULL)  
 9             return NULL;  
10         hashval = hash(name);  
11         np->next = hashtab[hashval];  
12         hashtab[hashval] = np;  
13     } else   
14         free((void *) np->defn);   
15     if ((np->defn = strdup(defn)) == NULL)  
16         return NULL;  
17     return np;  
18 }  

这两句应该注意一下:

1 np->next = hashtab[hashval];
2 hashtab[hashval] = np;

这两句的作用是将后插入的数据放在以前插入的数据的前面,让其下次访问的时候可以先访问到,具体的含义未知,应该是为了使得关联性的数据查找起来更加方便之用。

TCPL学习毕节:第六章hash表

标签:

原文地址:http://www.cnblogs.com/-wang-cheng/p/4874262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!