본문 바로가기

신입 개발자 면접 기초

스택, 큐, 덱(Stack, queue, deque)의 특징에 대해 설명해보세요!

반응형

스택, 큐, 덱의 특징에 대해 설명해주시겠어요?

스택(stack) : 자료의 입력과 출력을 한 곳(방향)으로 제한한 자료구조.

LIFO(Last In First Out)구조 push(), pop()

함수의 콜스택에 쓰이고 문자열을 역순으로 출력할 때, 연산자 후위표기법등에 쓰인다.

큐(queue) : 자료의 입력과 출력을 한 쪽 끝(front, rear)으로 제한한 자료구조.

FIFO(First In First Out)구조 put(), get()

컴퓨터 버퍼에서 주로 사용, 마구 입력이 되었으나 처리를 하지 못할 때, 버퍼(큐)를 만들어 대기 시킨다.

일반적인 큐의 단점 : 큐에 빈 메모리가 남아 있어도 꽉 차있는것으로 판단할 수 있음 rear가 배열의 끝에 도달했을 경우.

=> 개선된 원형 큐가 나옴.

원형 큐의 단점 : 메모리 공간은 잘 활용하나 배열로 구현되어 있기 때문에 큐의 크기가 제한되는 단점이 존재

=> 링크드리스트로 큐가 나옴.

링크드 리스트로 구현한 큐는 큐의 크기가 제한이 없고 삽입, 삭제가 편리하다.

덱(deque) : 자료의 입력과 출력을 양 쪽 끝에서 가능하게 하는 자료구조.

스크롤(scroll) : 입력이 한쪽 끝으로만 가능하도록 제한한 덱

셸프(shelf) : 출력이 한쪽 끝으로만 가능하도록 제한한 덱


반응형