스택 2

[자료구조] 큐(Queue)

큐란? 큐(Queue)는 먼저 들어온 데이터가 먼저 나가는 선입선출(FIFO: First - In - First - Out)구조이다. 이러한 큐의 예로는 매표소에소 표를 사기 위해 늘어선 줄을 들 수 있다. 줄에 있는 사람들 중 가장 앞에 있는 사람(즉 가장 먼저 온 사람)이 가장 먼저 표를 사게 되고, 나중에 온 사람들은 줄의 맨 뒤에 서야 할 것이다. 큐도 스택과 마찬가지로 프로그래머의 도구로써 폭넓게 이용된다. 보통 컴퓨터와 주변기기 사이에는 항상 큐가 존재하는데, 그 이유는 컴퓨터의 CPU와 주변기기 사이에는 속도 차이가 있기 때문에 CPU를 효율적으로 사용하기 위하여 큐가 존재한다. 예를 들면, 프린터는 속도가 늦고 상대적으로 컴퓨터의 CPU는 속도가 빠르기 때문에 CPU는 빠른 속도로 인쇄 데..

자료구조 2024.02.23

[자료구조] 스택(Stack)

스택이란? 스택(stack)은 컴퓨터에서 굉장히 많이 사용되는 자료 구조이다. 예를 들어, 우리가 스마트폰에서 "뒤로 가기"키를 누르면 현재 수행되는 압이 종료되고, 이전에 숭행되던 앱이 다시 나타난다. 이때 스택이 사용된다. 스택의 가장 큰 특징인 입출력 형태를 후입선출(LIFO: Last - In First - Out)이다. 이는 창고에 쌓여있는 상자를 이용하여 설명할 수 있다. 예를 들어, 창고에서 새로운 상자들을 쌓을 때는 상자더머의 맨 윗부분에 놓는다. 상자가 필요하다면 상자더미의 맨 위에 있는 상자를 꺼내야 한다. 만약 중간에서 상자를 꺼내면 전체 상자가 무너질 것이다. 즉, 가장 최근에 들어온 살자가 가장 위에 있게 되고, 또 먼저 나가게 되는 이런 형태가 후입선출이다. 위의 그림에서와 같이..

자료구조 2024.02.21