WEB开发网
开发学院网页设计JavaScript 在Javascript中实现伪哈希表 阅读

在Javascript中实现伪哈希表

 2010-09-14 13:41:46 来源:WEB开发网   
核心提示:了解数据结构的人应该都听说过哈希表这种数据结构,它是一种典型的利用键值对存储并检索数据的一种非线性结构,在Javascript中实现伪哈希表,又称散列表或杂凑法,在一般的线性表结构中,于是我们可以构造一个Hashtable对象,它有key和value两个属性,数据的相对位置是随机的,即数据和用于检索的关键字之间不存在确

了解数据结构的人应该都听说过哈希表这种数据结构,它是一种典型的利用键值对存储并检索数据的一种非线性结构,又称散列表或杂凑法。在一般的线性表结构中,数据的相对位置是随机的,即数据和用于检索的关键字之间不存在确定的关系,检索数据时往往需要进行一系列的比较,最终找到要检索的数据,这种方法往往建立在循环比较的机制上,利用时间的代价节省了空间,实现了数据的存储和检索功能。而哈希表则使用键值对进行数据的存储,在数据的存储位置和它的关键字之间建立了一一对应的关系,从而使每个关键字和结构中的一个唯一的存储位置相对应,所以在检索数据时,只需要根据这个对应关系便可快速定位到要查找的数据。

事实上,我们通常并不关心数据是如何存储的,而关心的是我们在使用数据的时候是否方便,例如对数据进行排序、查找、替换等操作,由于这种操作是贯穿在整个应用程序始终的,因此对效率的要求也就很高了。一般的高级语言,如C和C的变种,都提供了用于存储哈希表的数据结构,但在弱类型语言中,如javascript等脚本语言,本身并没有直接提供类似于哈希表的这种结构,不过我们可以从数组出发,按照哈希表的原理自己打造一个脚本语言专有的哈希表数据结构。

我们知道,在数据中,可以通过下标直接定位到相应数据,也就是用于存储数据的空间,数组的这种特性本身就决定了它可以被用来实现哈希算法,不过在C语言中,数组的下标只能是从0开始的整数,而不能为其它类型的数据,但在javascript中,我们可以借用“对象”这个概念,按照数组的特性来模拟哈希算法。因为在javascript中,对象其实就是属性或方法的一个集合,于是我们可以构造一个Hashtable对象,它有key和value两个属性,自己编写代码来模拟一个完整的哈希表。下面是一段在javascript中实现哈希表的代码:

1 2  下一页

Tags:Javascript 实现 哈希

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接