[자료구조] 스택(Stack) / 큐(Que) by JS
📄 스택(Stack)
스택은 가장 먼저 들어온 데이터가 가장 먼저 나중에 나가는 선입후출구조 입니다.
코드를 작성할 때 많이 사용하는 Ctrl + z
를 떠올리면 이해하기 쉽습니다.
📄 큐(Que)
큐는 먼저 들어간 데이터가 먼저 나오는 선입선출의 규칙을 가지고 있습니다.
일상생활에서 마트 계산대를 생각하면 이해하기 쉽습니다.
운영체제가 프로세스의 작업 요청을 들어온 순서대로 큐에 넣고 CPU가 순서대로 꺼내서 처리합니다.
이를 FIFO 스케줄링이라고 합니다.
📄 스택 구현해보기
자바스크립트로 연결리스트를 이용해 스택을 구현합니다.
import { LinkedList } from "./LinkedList.mjs";
class Stack {
constructor() {
this.list = new LinkedList();
}
push(data) {
this.list.insertAt(0, data);
}
pop() {
try {
return this.list.deleteAt(0);
} catch (e) {
return null;
}
}
// Top(head)에 있는 데이터를 참조만 하고 데이터를 제거하지는 않는다
peek() {
return this.list.getNodeAt(0);
}
isEmpty() {
return this.list.count == 0;
}
}
export { Stack };
출처
- 그림으로 배우는 자료구조와 알고리즘
Leave a comment