[TIL] Data Structure - Stack, Queue

유자·2020년 10월 22일
1

Data Structure

stack 과 queue

stack - 접시 설거지 하기

1. 접시를 설거지하고 차곡차곡 쌓는다
2. 물기가 마르면 접시를 정리한다

여기서 접시가 정리되는 순서가 stack의 작동원리와 같다.

  • stack 의 메소드
    • push(element) : element를 스택의 최상단에 추가 = 갓 설거지한 접시를 이미 설거지된 접시 위에 올림
    • pop() : 스택의 최상단에서 element를 제거하고 반환 = 설거지 완료 후 물기가 마른 접시를 순서대로 정리 + 정리하는 접시가 뭔지 확인
    • size() : 스택의 element 개수를 반환 = 정리가 완료되기 전에 남아있는 접시 갯수
    • peek() : 스택의 가장 위에 있는 element 반환 = 정리가 완료되기 전에 남아있는 접시 중에 가장 위에 있는 것 확인
    • isEmpty() : 스택이 비어있는지 확인
    • isFull() : 스택이 가득찼는지 확인
  • Application of stack
    • Used for expression evaluation (e.g.:shunting-yard algorithm for parsing and evaluating mathematical expressions)
    • Used to implement function calls in recursion programming

queue - 매표소에서 표사기

1. 차례대로 줄을 선다
2. 가장 앞 줄에 선 사람부터 표를 살 수 있다

여기서 사람이 줄을 서고 표를 사는 순서가 queue의 작동원리와 같다.

  • queue 의 메소드
    • enqueue(element) : element를 큐의 뒤에 추가 = 매표소에 도착한 순서대로 줄을 섬
    • dequeue() : element를 큐의 앞에서 제거하고 반환 = 가장 앞에 선 사람부터 표를 사서 줄을 나감
    • size() : 큐의 현재 element 개수를 반환 = 아직 표를 사지 못해 줄 서 있는 사람들의 수
  • Application of queue
    • Used to manage threads in multithreading
    • Used to implement queuing systems (e.g.:priority queues)

참고

profile
No one left behind

0개의 댓글