Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

Javascript를 사용하여 해시 테이블에 요소 추가


해시 테이블에 요소를 추가할 때 가장 중요한 부분은 충돌 해결입니다. 우리는 같은 것을 위해 체이닝을 사용할 것입니다. 여기에서 읽을 수 있는 다른 알고리즘이 있습니다:https://en.wikipedia.org/wiki/Hash_table#Collision_resolution

이제 구현을 살펴보겠습니다. 이것을 단순하게 유지하기 위해 정수에 대해서만 작동하는 해시 함수를 만들 것입니다. 그러나 더 복잡한 알고리즘을 사용하여 모든 객체를 해시할 수 있습니다.

예시

put(key, value) {
   let hashCode = hash(key);

   for(let i = 0; i < this.container[hashCode].length; i ++) {

      // Replace the existing value with the given key
      // if it already exists
      if(this.container[hashCode][i].key === key) {
         this.container[hashCode][i].value = value; return;
      }
   }

   // Push the pair at the end of the array
   this.container[hashCode].push(new this.KVPair(key, value));
}

를 사용하여 이것을 테스트할 수 있습니다.

예시

let ht = new HashTable();
ht.put(10, 94); ht.put(20, 72);
ht.put(30, 1);
 ht.put(21, 6);
ht.put(15, 21);
ht.put(32, 34);
 ht.display();

출력

이것은 출력을 줄 것입니다 -

0:
1:
2:
3:
4: { 15: 21 }
5:
6:
7:
8: { 30: 1 }
9: { 20: 72 }
10: { 10: 94 } -->{ 21: 6 } -->{ 32: 34 }