스택 뜻과 큐 개념에 대해서 이야기해봅시다.
스택 뜻과 큐 개념 설명
스택 뜻(Stack)과 큐 개념(Queue)은 일시적으로 데이터를 보존하고 꺼내는 방법을 의미합니다.
스택은 데이터가 입력된 순서대로 계속 쌓아 올리는 방법을 사용하고 데이터를 사용할 때는 제일 위에 쌓인 데이터부터 순서대로 꺼내는 방식을 사용합니다. 큐는 스택과 반대로 데이터가 입력된 순서대로 일렬로 늘어 놓는 방법을 사용하고 먼저 늘어 놓은 데이터 부터 순서대로 꺼내는 방식을 사용합니다.
스택은 후입선출(LIFO, Last In First Out) 방식입니다. 대표적인 예시가 문서를 작성하다가 되돌리기 기능을 사용하면 직전에 실행한 입력이나 삭제를 이전 상태로 되돌리는 것입니다. 작업을 할 때마다 내용을 스택 위에 쌓아 놓고 되돌릴 때도 위에서 부터 되돌리는 방식입니다.
큐는 선입선출(FIFO, First In First Out) 방식입니다. 대표적인 예시가 프린터로 인쇄를 진행할 때 컴퓨터 CPU는 인쇄할 데이터를 먼저 큐에 넣고 프린터는 인쇄가 가능해지면 큐에서 데이터를 꺼내는 방식을 사용합니다. 큐는 계산대 앞에 줄을 섰을 때 처럼 행렬의 움직임입니다.
큐는 정수기 옆에 비치된 종이컵 디스펜서와 유사한 구조로 종이컵 디스펜서를 채울 때는 맨 위의 뚜껑을 열어서 채우지만 아래 쪽에 있는 버튼을 누르게 되면 맨 아래에 있는 종이컵이 나오는 구조와 동일합니다.
스택 뜻과 큐 개념 이해
스택 뜻(Stack)과 큐 개념(Queue)은 일시적으로 데이터를 기억하고 꺼내는 방법입니다.
스택과 큐는 데이터를 일렬로 저장할 때 사용하는 2가지 방식입니다. 스택과 큐는 프로그래밍 영역에서 배열과 같은 데이터 구조를 사용하여 일렬로 데이터를 저장하거나 데이터를 추가하거나 데이터를 출력할 때 사용하는 방법입니다.
스택(Stack)은 데이터를 처리할 때 후입선출 구조를 유지하는 추상 데이터형을 의미합니다. 스택은 마지막에 넣은 데이터를 먼저 출력하는 방법으로 이는 마치 책상 위에 겹쳐서 쌓아 올린 서류들을 위에서 부터 처리하는 방식입니다. 공백인 스택에 데이터 추가 시 가장 아래부터 데이터가 쌓여 가며 가장 마지막에 추가된 데이터가 가장 먼저 추출되고 삭제되는 자료 구조입니다.
스택에 데이터를 넣는 것을 푸시(Push)라고 하고 스택에서 데이터를 꺼내는 것을 팝(Pop)이라고 합니다. 스택은 push down stack이라고도 부르며 스택의 top에 새로운 원소를 넣고 가장 최근에 넣은 원소를 스택의 top으로 부터 꺼내는 구조입니다.스택은 후입선출의 방식으로 LIFO (Last In First Out) 또는 FILO(First In Last Out)라고 부릅니다.
스택의 경우 프로그램에서 함수 호출에 대한 정보들은 스택에 축적되어 쌓이기 때문에 데이터 양이 한계를 넘어서면 스택 오버플로(Overflow)가 발생할 수 있습니다. 즉, 스택에는 최상위와 한계가 존재합니다.
큐(Queue)는 한쪽 끝으로 자료를 집어 넣고 반대쪽에서 자료를 뺄 수 있는 선형 구조를 의미합니다. 큐는 먼저 입력한 데이터를 먼저 출력하는 방법으로 레지스터에 나열되어 있는 행렬과 같은 구조입니다. 큐에 데이터를 입력하는 것을 인큐(Enqueue)라고 하고 큐에서 데이터를 꺼내서 출력하는 것을 디큐(Dequeue)라고 합니다. 큐는 선입선출 방식으로 FIFO(First In First Out)라고 부릅니다. 큐는 마치 순서대로 밀어 내어 꺼내는 것과 같은 형태입니다. 큐는 가장 먼저 보관한 자료 부터 먼저 꺼내는 방식입니다. 큐에서는 데이터가 들어가는 곳을 rear라고 하고 데이터가 삭제되는 곳을 front라고 합니다.
키보드에 자판을 사용하면 키보드에 입력한 순서대로 문자가 나열되며 키보드로 먼저 친 내용이 먼저 표시되는 것도 큐의 구조입니다.