본문 바로가기
프로그래밍/자료구조

[자료구조] # 0. 언제 스택을 쓰고, 큐를 써야할까?

by Crush on Study 2024. 7. 3.
반응형

자료구조의 가장 기초가 되는 두 유형이다.

  • Stack : Last In First Out 형태의 데이터 처리 방식으로 입구와 출구가 같다고 보면 된다.
  • Queue : First In First Out 형태의 데이터 처리 방식으로 입구와 출구가 다르며, 원형 통자의 "채널" 이라고 보면 된다.

정의는 누구나 알지만, 정작 그래서 언제 스택을? 언제 큐를? 물어보면 막상 대답하려니 어려울 수도 있다.

 


스택의 대표적인 예시는 아마 "뒤로가기" 이지 않을까?

여러분들이 이 글을 보기 위해서는 일단 브라우저를 키고, 스택 또는 그 외 유관한 키워드를 검색하고, 이 게시글을 눌러서 왔을 것이다. 그럼 뒤로가기를 하면? 검색 결과 화면이 뜰것이고, 다시 또 뒤로가기를 하면 검색창이 있는 메인 브라우저 화면으로 간다.

 

또 뭐가 있을까? 개발자에게 뗄 수 없는 "코드 복붙"  (나만 그렇다면 미안하다...) 근데, 잘못된 파일에 코드를 복붙했다.

이 경우 실행 취소 (Ctrl+Z)를 통해 직전의 상태로 돌아갈 수 있다. 어떻게보면 이것 또한 스택의 사용예시가 아닐까?

 

 


그렇다면 큐의 대표적인 예시는? 운영체제 쪽으로 엮어볼 수 있을 것이다. 선입선출 구조 방식을 따르는 스케줄링 기법이 하나 있다. 가장 간단한 스케줄링인데, 가장 먼저 요청이 들어온 놈에게 자원을 할당하는 식이다.

물론 이건 요청량이 방대해지면 잘 쓰진 않아서 소규모 프로그램에서나 쓰인다.

 

또 생각나는건 은행이다. 번호 대기표 뽑고  번호 호출되면 창구로 가는식인데 딱 FIFO 구조를 띄고 있다.

스택과 큐. 정의 자체를 질문하기보다는 요새 기업에서는 사용처를 물어보니 한번쯤은 고민해보고 가도 좋을거 같다.

반응형