• TCPL学习毕节:第六章hash表


    对于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;

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

  • 相关阅读:
    叶问14
    叶问13
    叶问12
    叶问11
    叶问10
    叶问9
    Java三种循环之间的区别
    利用Java对象数组制作简易学生管理系统
    什么叫java方法重载?
    Java编译器的常量优化
  • 原文地址:https://www.cnblogs.com/-wang-cheng/p/4874262.html
Copyright © 2020-2023  润新知