백엔드 개발자 공부/자료구조, 알고리즘

[자료구조] 스택(Stack) / 큐(Queue)

gotoguy 2022. 9. 22. 19:46
728x90

https://gohighbrow.com/stacks-and-queues/

스택(Stack)

    - 쌓다, 쌓이다, 포개지다

    - LIFO(Last In First Out) 혹은 FILO(First Out Last In)의 구조 (e.g. 프링글스)

    - 데이터를 한번에 하나씩만 넣고 뺄 수 있음

    - 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근 구조

    - 데이터를 넣는 것을 'PUSH', 데이터를 꺼내는 것을 'POP'이라고 함

 

스택 메서드

    - push() : 스택에 데이터 추가

    - pop() : 가장 나중에 추가된 데이터를 스택에서 삭제하고, 삭제한 데이터 리턴

    - size() : 스택에 추가된 데이터의 크기

    - peek() : 스택에 가장 나중에 추가된 데이터 리턴

    - show() : 현재 스택에 포함되어 있는 모든 데이터를 String 타입으로 변환하여 리턴

    - clear() : 스택의 모든 데이터 삭제


큐(Queue)

    - 줄을 서서 기다리다, 대기행렬

    - FIFO(First In First Out) 혹은 LILO(Last In Last Out)의 구조 (e.g. 톨게이트)

    - 데이터를 한번에 하나씩만 넣고 뺄 수 있음

    - 데이터의 입력, 출력 방향이 다름

    - 데이터를 넣는 것을 'enqueue', 데이터를 꺼내는 것을 'dequeue'라고 함

 

큐 메서드

    - add() : 큐에 데이터 추가

    - poll() : 가장 먼저 추가된 데이터를 큐에서 삭제하고, 삭제한 데이터 리턴

    - size() : 큐에 추가된 데이터의 크기

    - peek() : 큐에 가장 먼저 추가된 데이터 리턴

    - show() : 큐에 들어있는 모든 데이터를 String 타입으로 변환하여 리턴

    - clear() : 큐의 모든 데이터 삭제

728x90