stack & queue[2021.08.26]

김정훈·2021년 8월 26일
0

javascript

목록 보기
15/19

1. 자료구조란?

자료구조란 여러 데이터들의 묶음을 저장하고, 사용하는 방법을 정의한 것입니다.

1. 데이터는 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값
2. 데이터는 분석하고 정리하여 활용해야만 의미를 가질 수 있다.
3. 필요에 따라 데이터의 특징을 잘 파악하여 정리하고, 활용
4. 무수한 상황에 데이터를 효율적으로 다룰 수 있는 여러 방법을 연구

데이터를 효율적으로 다룰 수 있는 방법을 모아 자료구조라는 이름을 붙임

대부분의 자료구조는 특정한 상황에 놓인 문제를 해결하는 데에 특화되어 있습니다.
따라서 많은 자료구조를 알아두면, 어떠한 상황이 닥쳤을 때 적합한 자료구조를 
빠르고 정확하게 적용하여 문제를 해결할 수 있습니다.

	


2. stack

stack은 쌓다, 쌓이다, 포개지다... 데이터를 순서대로 쌓는 구조!

stack은 가장 먼저 들어간 데이터는 가장 나중에 나올 수 있는 구조로써
특징은 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근
이런 stack 자료구조의 정책은 LIFO(Last In First Out) 혹은
FILO(First In Last Out)이라고 부른다.

stack의 실사용 예
* 브라우저의 뒤로 가기, 앞으로 가기 기능 구현
  - 새로운 페이지로 접속할 때, 현재 페이지를 Prev Stack에 보관합니다.
  - 뒤로 가기 버튼을 눌러 이전 페이지로 돌아갈 때에는, 
    현재 페이지를 Next Stack에 보관하고 Prev Stack에 가장 나중에
    보관된 페이지를 현재 페이지로 가져옵니다.
  - 앞으로 가기 버튼을 눌러 앞서 방문한 페이지로 이동을 원할 때에는,
    Next Stack의 가장 마지막으로 보관된 페이지를 가져옵니다.
  - 마지막으로 현재 페이지를 Prev Stack에 보관합니다.
   



3. queue

queue는 줄을 서서 기다리다, 대기 행렬...먼들 들어간 데이터가 먼저!

자료구조 queue는 stack과 반대되는 개념으로, 먼저 들어간 데이터가 먼저나오는
FIFO(First In First Out)또는 LILO(Last In Last Out)을 특징으로
가지고 있다. 
가장 나중에 진입한 데이터는 먼저 도착한 데이터가 모두 빠져나가기 전까지는 
빠져나갈 수 없다
자료구조 Queue는 데이터(data)가 입력된 순서대로 처리할 때 주로 사용합니다.


queue의 실사용 예
* 컴퓨터와 연결된 프린터에서 여러 문서를 순서대로 인쇄
  - 우리가 문서를 작성하고 출력 버튼을 누르면 해당 문서는 인쇄 작업 
    (임시 기억 장치의) Queue에 들어갑니다.
  - 프린터는 인쇄 작업 queue에 들어온 문서를 순서대로 인쇄
  
* 동영상 스트리밍 앱을 통해 영상을 시청할 때 
  - 다운로드 된 데이터가 영상을 재생하기에 충분하지 않은 경우 queue에 모아
    두었다가 동영상을 재생하는 방식
  
  
컴퓨터 장치들 사이에서 데이터를 주고 받을 때 장치 사이에 존재하는 속도의 차이나 
시간 차이를 극복하기 위해 임시 기억 장치의 자료구조로 queue를 사용.


profile
프론트엔드 개발자를 꿈꾸고 있습니다!

0개의 댓글

관련 채용 정보