-
JavaScript - 자료구조 (큐, 스택)JavaScript 2021. 1. 2. 17:47
JavaScript에서는 Queue와 Stack은 매우 간단합니다.
Queue란?
FIFO(First In, First Out)정책을 사용하는 자료구조 → 즉 먼저 들어간 자료가 먼저 나온다는 뜻
예) 놀이기구를 타기 위해 줄을 서는 상황 (먼저 탄 사람이 먼저 놀이기구에서 내리겠죠?)
실제 활용) JavaScript에서 jQuery의 이벤트 처리 방식이 큐와 비슷하다는 것으로 알고 있습니다.
Queue에서 데이터를 넣을 때는 enqueue(인큐)라고 말하고 데이터를 빼올 때는 dequeue(디큐)라고 말합니다.
Stack이란?
LIFO (Last In First Out)정책을 사용하는 자료구조 → 나중에 들어간 자료가 먼저 나온다는 뜻
예) 책을 쌓아놓았다가 맨 아래의 책을 꺼내야하는 상황
(물론 맨 아래의 책만 쏙 빼올 수도 있습니다만 순서대로 다시 상자에 담아야 한다면 맨 위에서부터 걷어내야 합니다.)
실제 활용) 컴퓨터에서 함수의 실행 순서가 이에 대표적입니다. 재귀함수도 마찬가지구요
Stack에서 자료를 넣을 때는 push라고 말하고 자료를 빼올 때는 pop이라고 말합니다.
간단하게 구성해보면 아래와 같습니다. (편의상 세미콜론은 생략합니다.)
console.clear() // queue const a = [1, 2, 3] const enqueue = (data) => { a.push(data) } const dequeue = () => { a.unshift() } enqueue(4) console.log(a) // [1, 2, 3, 4] dequeue() console.log(a) // [1, 2, 3] // stack const b = [1, 2, 3] const push = (data) => { b.push(data) } const pop = () => { b.pop() } push(4) console.log(b) // [1, 2, 3, 4] pop() console.log(b) // [1, 2, 3]
'JavaScript' 카테고리의 다른 글
브라우저 동작 원리와 Progressive Render, Built-in 객체 (0) 2021.01.06 1급시민, Lexical Scope, 실행컨텍스트, Closure, this, apply, call, bind (0) 2021.01.06 JavaScript - 자료구조 (이중연결리스트) (0) 2021.01.02 JavaScript - Array 메서드 정리 (0) 2021.01.02 새롭게 도입된 ES2021 문법 (0) 2021.01.01