-
Data structure (stack, queue)개념정리 2021. 1. 19. 14:58
stack, queue 는 데이터를 집어넣을 수 있는 선형(linear) 자료형이다.
어떤 데이터의 구체적인 구현 방식은 생략한 채, 데이터의 추상적 형태와 그 데이터를 다루는 방법만을 정해놓은 것을 가지고 ADT(Abstract Data Type) 혹은 추상 자료형이라고 한다.
queue? 줄서기
1. 먼저 집어넣은 데이터가 먼저 나온다. (선입선출) First In Fist Out
Property
1. front : 가장 먼저 들어온 데이터의 위치(index)를 나타낸다.
2. rear : 새로운 데이터가 들어갈 위치(index)를 나타낸다.
3. queueArray : queue저장소를 나타낸다.
4. 우선순위 큐란? 응급실과 같이 생각하면 됨 응급환자를 먼저 뺀다. (기본은 줄서기)
class Queue {
constructor {
this._arr = [];
}
enqueue(item) {
this._arr.push(item); // 뒤로 들어가고
}
dequeue() {
return this._arr.shift(); // 앞에서 나온다
}
}
const que = new Queue();
que.enqueue(1);
que.enqueue(2);
que.enqueue(3);
que.dequeue(); // 1
stack? 프링글스
1. 나중에 집어넣은 데이터가 먼저 나온다. (후입선출) Last in First Out
Property
1. top : top은 말 그대로 stack에 가장 위에 쌓여있는 데이터를 나타낸다. 정확히는 그 데이터의 위치(index) 값입니다.
2. maxSize : maxSize는 해당 저장소의 최대 크기를 나타낸다.
3. stackArray : stackArray는 해당 저장소 자체이다.
4. 재귀 함수는 스택과 같은 개념으로 작동한다.
class Stack {
constructor {
this._arr = [];
}
push(item) {
this._arr.push(item); // 뒤로 들어오고
}
pop() {
return this._arr.pop(); // 뒤에서 나간다
}
peek() {
return this._arr[this._arr.length - 1];
}
}
const stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(3);
stack.pop(); // 3
'개념정리' 카테고리의 다른 글
Data structure(Graph, Tree, BST) (0) 2021.01.24 Data structure (Linked list, Hash Table) (0) 2021.01.23 Prototype과 JavaScript에서 Object를 생성하는 방법 (0) 2021.01.14 Object Oriented Programming (0) 2021.01.14 this 와 call, apply, bind 키워드 (0) 2021.01.14