JavaScript
-
자바스크립트로 구현한 Tree, BFS, DFS프론트엔드/자료구조 알고리즘 2022. 3. 12. 01:07
자바스크립트로 구현한 Tree, BFS, DFS Tree class Node{ constructor(data){ this.data = data; //노드의 정보 this.children = []; // 자식'노드'가 들어있는 배열 } addChild(data){ this.children.push(new Node(data)); } removeChild(data){ this.children = this.children.filter(child => child.data === data ? false: true); } } class Tree{ constructor(){ this.root = null; // root도 노드이다. } } const t = new Tree(); t.root = new Node('a')..
-
자바스크립트로 구현한 hash table프론트엔드/자료구조 알고리즘 2022. 3. 11. 16:38
자바스크립트로 구현한 hash table hash table 키를 값에 매핑할 수 있는 구조인, 연관 배열 추가에 사용되는 자료 구조이다. 해시 테이블은 해시 함수를 사용하여 색인(index)을 버킷(bucket)이나 슬롯(slot)의 배열로 계산한다. 출처 : https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%ED%85%8C%EC%9D%B4%EB%B8%94 해시 테이블 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org class HashTable{ constructor(table_length){ this.table = new Array(table_length); this.size = 0; } _hash(key){ let hash = 0; for(l..
-
단일연결리스트로 구현한 Stack, Queue프론트엔드/자료구조 알고리즘 2022. 3. 10. 11:52
단일연결리스트로 구현한 Stack, Queue Stack first in first out // 단일연결리스트로 구현한 stack class Node{ constructor(value, next){ this.value = value; this.next = next; } } class Stack{ _size = 0; constructor(){ this.head = null; // 가장 위에 있는(가장 나중에 있는) 노드 this._size = 0; } get size(){ return this._size; } push(value){ const new_node = new Node(value, this.head); this.head = new_node; this._size++; } pop(){ if(this...