한 원소 뒤에 하나의 원소 만이 존재하는 형태로 자료들이 선형으로 나열되어 있는 구조
class Queue {
constructor() {
this.queue = [];
this.front = 0;
this.rear = 0;
}
enqueue(inputValue) {
this.queue[this.rear++] = inputValue;
}
dequeue() {
const returnValue = this.queue[this.front];
delete this.queue[this.front++];
return returnValue;
}
peek() {
return this.queue[this.front];
}
size() {
return this.rear - this.front
}
}
// Object를 이용
const hashTable = {};
hashTable['key'] = 10;
hashTable['key2'] = 'hi';
console.log(hashTable['key']); // 10
delete hashTable['key'];
console.log(hashTable['key']); // undefined
// Map을 사용, Object도 Key로 사용 가능
const hashTable = new Map();
hashTable.set('key', 10);
//object를 key로 사용
const obj = { a: 2 };
hashTable.set(obj, 'aa');
console.log(hashTable.get(obj)); // a
hashTable.delete(obj);
console.log(hashTable.keys()); // { 'key' }
console.log(hashTable.values()); // { 10 }
hashTable.clear();
console.log(hashTable.keys()); // { }
console.log(hashTable.values()); // { }
// key와 Value가 동일함
const hashTable = new Set();
hashTable.add('key');
hashTable.add('key2');
console.log(hashTable.has('key')); // true
hashTable.delete('key2');
console.log(hashTable.has('key2')); // false
원소 간 다대다 관계를 가지는 구조로 계층적 구조나 망형 구조를 표현하기에 적합
const graph = Array.from(Array(5), () => Array.fill(false));
graph[0][1] = true; // 0에서 1로 가는 간선이 존재하는 경우
const graph = Array.from(Array(5), () => []);
graph[0].push(1) // 0에서 1로 가는 간선이 존재하는 경우
arr = [1, 2, 3, 4, 5, 6];
console.log(arr.some((num) => num > 5)); // true
console.log(arr.some((num) => num > 7)); // false