“방금 취소한 작업을 되돌리려면 무엇부터 복원해야 할까?”
마지막에 한 작업부터 되돌려야 자연스럽다.
반대로 고객 문의 대기열이라면 먼저 기다린 사람부터 처리하는 것이 자연스럽다.
마지막에 넣은 것을 먼저 꺼낸다
접시를 차곡차곡 쌓는 모습을 떠올려 보자.
마지막에 올려놓은 접시가 가장 위에 있으므로 먼저 꺼내게 된다.
기술 이름
나중에 들어온 데이터가 먼저 나오는 구조를
스택(Stack)이라고 한다.
PUSH → 데이터를 넣는다
POP → 가장 위의 데이터를 꺼낸다
POP → 가장 위의 데이터를 꺼낸다
함수 호출, 실행 취소, 괄호 검사처럼 최근 상태를 먼저 처리해야 할 때 자주 사용된다.
먼저 들어온 것을 먼저 꺼낸다
은행 번호표를 떠올려 보자. 먼저 온 사람이 먼저 서비스를 받는다.
기술 이름
먼저 들어온 데이터가 먼저 나오는 구조를
큐(Queue)라고 한다.
ENQUEUE → 뒤쪽에 데이터를 넣는다
DEQUEUE → 앞쪽에서 데이터를 꺼낸다
DEQUEUE → 앞쪽에서 데이터를 꺼낸다
작업 대기열, 출력 요청, 메시지 처리처럼 도착 순서를 지키는 일이 중요할 때 적합하다.
ILLUST A | ILL-03 | Stack과 Queue의 삽입/삭제 방향 | LIFO/FIFO 방향 필수데이터 구조는 알고리즘과 함께 움직인다
자료구조는 그 자체로 목적이 아니다.
어떤 데이터를 어떤 방식으로 처리하려는지에 따라 알맞은 구조를 선택해야 한다.
이 질문에 따라 배열, 리스트, 스택, 큐 같은 선택이 달라진다.