美文网首页让前端飞程序员程序园
走进 Typescript 数据结构(散列表)

走进 Typescript 数据结构(散列表)

作者: zidea | 来源:发表于2019-04-29 16:44 被阅读12次
typescript-cover-image.jpg

散列算法的作用是尽可能快地在数据结构中找到一个值。通常在集合中获取一个值的做法都是遍历整个数据结构来找到想要的值。如果用散列函数,就知道值的具体位置,所以很快就能检索到想要的值。

function showHashCode(key){
    var hash = 0;
    for(var i = 0; i < key.length; i++){
        hash += key.charCodeAt(i) + " - ";

    }
    console.log(key  + " -> " + hash);
    return hash % 35;
}

这方法很简单但是很有效地将一个值的字母ASCII值相加作为查询码。运行结果如下:

angular -> 097 - 110 - 103 - 117 - 108 - 97 - 114 -
spring -> 0115 - 112 - 114 - 105 - 110 - 103 -
flask -> 0102 - 108 - 97 - 115 - 107 -
export default class HashTable {
  table: any[];
  constructor() {
    this.table = [];
  }

  put(key: string, val: any) {
    const position: number = this.loseloseHashCode(key);
    console.log(position + " - " + key);
    this.table[position] = val;
  }

  get(key: string): any {
    return this.table[this.loseloseHashCode(key)];
  }

  remove(key: string) {
    this.table[this.loseloseHashCode(key)] = undefined;
  }

  private loseloseHashCode(key: string): number {
    var hash: number = 0;
    for (var i = 0; i < key.length; i++) {
      hash += key.charCodeAt(i);
    }

    return hash % 35;
  }
}

这里将获取键值码过大我们可以通过取模形式对其进行简化。

let tutHashTable = new HashTable();
tutHashTable.put("angular", "javascript");
tutHashTable.put("spring", "java");
tutHashTable.put("flask", "python");

11 - angular
29 - spring
4 - flask

相关文章

  • 走进 Typescript 数据结构(散列表)

    散列算法的作用是尽可能快地在数据结构中找到一个值。通常在集合中获取一个值的做法都是遍历整个数据结构来找到想要的值。...

  • 学习JavaScript数据结构与算法(第2版)

    二维和多维数组 栈数据结构 队列数据结构(排队) 链表数据结构 双向链表 集合 字典和散列表 散列表 树 二叉树 ...

  • 算法图解-散列表

    1. 散列表 散列表由键和值组成,散列表将键映射到值。 在复杂数据结构中,散列表可能是最有用的,也被称为散列映射、...

  • 散列表

    什么是散列表 散列表也叫哈希表,输入某一关键字输出其对应的数值的数据结构 散列表的生成依赖于散列函数,散列函数的要...

  • 散列表下

    为什么散列表和链表经常会一起使用? 散列表这种数据结构虽然支持非常高效的数据插入、删除、查找操作,但是散列表中的数...

  • 散列表下

    为什么散列表和链表经常会一起使用? 散列表这种数据结构虽然支持非常高效的数据插入、删除、查找操作,但是散列表中的数...

  • 基础概念

    散列表 散列表是一种将键(Key)映射为值(Value)从而快速查找的数据结构 散列表包含一个底层数组和一个散列函...

  • Java HashMap原理解析

    本文分析HashMap的实现原理。 数据结构(散列表) HashMap是一个散列表(也叫哈希表),用来存储键值对(...

  • 数据结构与算法JavaScript描述(6) —— 散列(Has

    散列 散列是一种常用的数据存储技术,散列后的数据可以快速地插入或取用。散列使用的数据结构叫做散列表。在散列表上插入...

  • 散列表面面观

    引子 散列的概念应用很广泛,比如加密,散列表,几何散列等。而散列表更是日常工作中常见的数据结构,同时也是面试中最常...

网友评论

    本文标题:走进 Typescript 数据结构(散列表)

    本文链接:https://www.haomeiwen.com/subject/gkzynqtx.html