티스토리 뷰

개념 설명

▶ 스택 (Stack)

  • 정의: 스택은 뒤로 넣고 뒤로 금방하는 (Last-In First-Out, LIFO) 구조.
  • 복소 가능 작업:
    • push: 인접 값을 스택의 끝에 추가
    • pop: 스택의 끝에서 값 개발 (제거)
  • 특징:
    • 매우 간단하고 다른 자료구 구성의 기원이 되기도 함
    • 불필요한 값 감지 불가 (LIFO)

▶ 큐 (Queue)

  • 정의: 큐는 지난시점에 넣고 지나지 않은 순서대로 가지고 가는 (First-In First-Out, FIFO) 구조.
  • 복소 가능 작업:
    • enqueue: 값을 큐 끝에 추가
    • dequeue: 큐 첫번째 값 개발 (제거)
  • 특징:
    • 일정 순서대로 값 처리
    • 역순서처리 불가

TypeScript로 스택 구현

// 스택 구현
class Stack<T> {
  private items: T[] = [];

  // push: 값을 뒤에 넣기
  push = (item: T): void => {
    this.items.push(item);
  };

  // pop: 뒤에서 값 개발
  pop = (): T | undefined => {
    return this.items.pop();
  };

  // peek: 최근 값
  peek = (): T | undefined => {
    return this.items[this.items.length - 1];
  };

  // isEmpty: 빈 상태 확인
  isEmpty = (): boolean => {
    return this.items.length === 0;
  };
}

TypeScript로 큐 구현

// 큐 구현
class Queue<T> {
  private items: T[] = [];

  // enqueue: 끝에 값 추가
  enqueue = (item: T): void => {
    this.items.push(item);
  };

  // dequeue: 첫번째 값 개발
  dequeue = (): T | undefined => {
    return this.items.shift();
  };

  // front: 첫번째 값 확인
  front = (): T | undefined => {
    return this.items[0];
  };

  // isEmpty: 빈 상태 확인
  isEmpty = (): boolean => {
    return this.items.length === 0;
  };
}

사용 예제

const stack = new Stack<number>();
stack.push(10);
stack.push(20);
console.log(stack.pop()); // 20

const queue = new Queue<string>();
queue.enqueue("A");
queue.enqueue("B");
console.log(queue.dequeue()); // "A"

1주차 숙제

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함