- 浏览: 75099 次
- 性别:
- 来自: 北京
hash.h
#include <stdio.h> #define HASHSIZE 101 struct nlist { struct nlist *next; char *name; char *defn; }; unsigned hash(char *s); struct nlist *lookup(char *s); struct nlist *install(char *name, char *defn);
hash.c
#include <string.h> #include "hash.h" static struct nlist *hashtab[HASHSIZE]; unsigned hash(char *s) { unsigned hashval; for (hashval = 0; *s != '\0'; s++) hashval = *s + 31 * hashval; return hashval % HASHSIZE; } struct nlist *lookup(char *s) { struct nlist *np; for (np = hashtab[hash(s)]; np != NULL; np = np->next) if (strcmp(s, np->name) == 0) return np; return NULL; } struct nlist *install(char *name, char *defn) { struct nlist *np; unsigned hashval; if ((np = lookup(name)) == NULL) { np = (struct nlist *)malloc(sizeof(struct nlist)); if (np == NULL || (np->name = strdup(name)) == NULL) return NULL; hashval = hash(name); np->next = hashtab[hashval]; hashtab[hashval] = np; } else free((void *)np->defn); if ((np->defn = strdup(defn)) == NULL) return NULL; return np; }
发表评论
-
排序算法---计数排序
2011-11-27 14:57 602#include <stdio.h> vo ... -
排序算法---归并排序
2011-11-26 19:33 740#include <stdio.h> vo ... -
排序算法---交换排序(冒泡排序、快速排序)
2011-11-26 19:32 699#include <stdio.h> vo ... -
排序算法---选择排序(简单插入排序、堆排序)
2011-11-26 19:31 643#include <stdio.h> vo ... -
排序算法---插入排序(简单排序、shell排序)
2011-11-26 19:29 643#include <stdio.h> vo ... -
删除字符串中的特定字符和重复字符
2011-11-26 13:45 660#include <stdio.h> vo ... -
Linux编程-多线程、同步和互斥(转载)
2011-11-14 15:27 1204http://www.cnblogs.com/skynet/a ... -
寻找字符串中的最大数字子串
2011-09-22 17:17 1513#include <stdio.h> int f ... -
删除子字符串
2011-09-21 15:27 599#include <stdio.h> #incl ... -
c语言随机数
2011-09-18 17:15 682#include <stdio.h> #i ... -
带头结点有序单链表的合并
2011-09-08 14:21 1178typedef int Item; typedef s ... -
链表逆序的递归/非递归算法
2011-09-01 23:37 1404/** *链表逆序的递归/非递归算法 */ # ... -
递归算法---字符串---全/部分组合和全排列
2011-08-30 23:01 1216#include <stdio.h> #i ... -
递归算法---0-1背包问题(面试宝典)
2011-08-28 21:11 1892/** *正整数n,m,从数列1、2、3、...、n中随 ... -
递归算法---字符串全组合(面试宝典)
2011-08-28 17:24 1251/** *求一字符串所有字串的组合 */ #i ... -
递归算法---求解多元一次方程
2011-08-28 10:38 1893/** * 求解x1+x2+x3+...+x10 = ... -
(zz)关于类的sizeof
2011-08-27 18:16 564http://blog.sina.com.cn/s/blog_ ... -
(zz)结构体字节对齐原则
2011-08-27 17:53 1576结构体默认的字节对齐一般满足三个准则: 结构体变量的首 ... -
list.h from linux-2.4
2011-08-25 09:59 602#ifndef _LIST_H_ #define _L ... -
Josephus环
2011-08-23 11:20 697/*************************** ...
相关推荐
Build working implementations of hash tables, written in the C programming language. This book starts with simple first attempts devoid of collision resolution strategies, and moves through ...
根据提供的文件信息,我们可以深入分析C语言中哈希表(Hash Table)的实现方式与具体细节。本篇文章将从以下几个方面展开讨论: 1. **哈希表的基本概念** 2. **哈希函数的设计** 3. **哈希表的创建与管理** 4. **...
For the misspelled word "acr", replacing the "c" with an "i" yields "air", replacing the "r" with an "e" yields "ace", and so on. • Inserting any letter at any position in a word The program ...
Sorting Hash Table Increase Sorting Searching Elementd in hash table BSTree
本文档收集了前端大厂最新面试题的 Hash Table 相关知识点,涵盖 Hash Table 的基本概念、 ハッシュ関数、 Collision 解决方法、Hash Table 的实现和应用等方面。 一、Hash Table 基本概念 * Hash Table 是一种...
Objective-C是一种通用且面向对象的编程语言,它在C语言的基础上增加了面向对象的功能。这种语言最初由Brad Cox和Tom Love在20世纪80年代初期开发,并随后被苹果公司采用,成为iOS和macOS应用程序的主要开发语言之一...
方便地查看文件的MD5/SHA1值 – HashTab给文件属性窗口添加校验值!
代码重点是hash_table,附加std::map与其做对比,实现的是一条sql语句:select c_nationkey, c_mktsegment, count(*), max(c_acctbal) from aaa_customer_1g group by c_nationkey, c_mktsegment order by c_...
"FPGA-based hash table"是指利用FPGA的特性实现的哈希表数据结构。哈希表是一种高效的数据存储和检索结构,它通过将关键字映射到数组的特定位置来快速查找、插入和删除数据。 哈希表的核心是哈希函数,它将输入的...
在“u_hash_table.c”和“u_hash_table.h”这两个文件中,我们可以预见到源代码实现了一个名为“u_hash_table”的哈希表结构。`.c`文件通常包含实际的函数实现,而`.h`文件是头文件,包含了函数声明、数据结构定义和...
Hash programming in SAS. to show you how hash objects in SAS DATA steps can be used to lookup data, combine data, and organize data. After reading the discussions and trying the examples, you should ...
在IT领域,哈希算法(Hash Algorithm)是一种用于将任意长度的数据转化为固定长度输出的算法。这个过程通常称为哈希或散列。哈希算法在信息安全、数据完整性验证、密码学等多个方面都有着广泛的应用。本项目是用...
`uthash`是一个开源的C宏库,专门用于简化哈希表的实现,它提供了高效且易于使用的接口,使程序员能够快速构建自己的哈希表结构。 哈希表的关键组成部分包括哈希函数、冲突解决策略和存储结构。哈希函数负责将键...
在本实验中,主要涉及了哈希表(Hash Table)这一数据结构的使用,目的是让学生了解哈希表的概念、不同的哈希方式以及如何在程序中应用哈希表进行员工信息的搜索。实验环境包括Windows XP操作系统和VC++ 6.0/WinTC...
哈希表(Hash Table)是一种数据结构,它通过计算一个关联数组中的索引来确定一个特定元素的存储位置,使得在平均情况下,查找、插入和删除操作的时间复杂度达到O(1)。C语言中的哈希表实现是程序员常用的数据结构...
GLib哈希表还提供了`g_hash_table_remove()`、`g_hash_table_steal()`等方法来删除或移除键值对,以及`g_hash_table_contains()`检查键是否存在。 4. **遍历哈希表** GLib提供迭代器来遍历哈希表的所有键值对,如`...
this is a hash table using hash function
- 在这个C语言实现中,哈希函数可能是一个简单的模运算,例如`hash(key) = key % size`,其中`size`是哈希表的大小。 3. **冲突解决:链地址法**: - 链地址法是为每个数组元素创建一个链表,当新键映射到已有的...
现行哈希的C++实现代码,具体原理可以参考:Larson, Per-Ake (April 1988),"Dynamic Hash Tables",Communications of the ACM 31: 446–457, doi:10.1145/42404.42410.
(1) 建立一个哈希表,哈希函数为除留余数法,处理冲突的方法为线性探测再散列或二次探测再散列。 (2) 往哈希表中依次存入插入多个单词。 (3) 显示哈希表的存储情况。 (4) 计算哈希表的平均查找长度。...