首页 > 其他 > 详细

TCPL学习毕节:第六章hash表

时间:2015-10-13 13:46:18      阅读:256      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!