개발일지/잡다한 IT지식

큐(queue)와 스택(stack)

자코린이 2022. 1. 21. 20:55

큐와 스택은 둘 다 배열이다. 일반적인 배열과는 다르게 배열에 넣는 순서와 나오는 순서가 정해진 특별한 배열이다.

스택(stack)은 아래의 그림처럼 작용한다.

https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D

 배열에 넣을 때는 push함수를 쓰고, 뺄때는 pop함수를 쓴다.

여기서 스택의 특별한 성질이 나오는데 LIFO(Last In First Out)구조이다 .

 

한마디로 마지막에 넣은 것이 먼저나오고 처음 넣은 것이 마지막에 나온다는 것이다.(총의 탄창같이)

 

큐(queue)는 아래의 그림처럼 나온다.

https://namu.wiki/w/%ED%81%90(%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0)

배열에 넣을 때는 enqueue함수를 쓰고, 빼낼 때는 dequeue를 사용한다.

큐는  FIFO(First In First Out)구조로 처음에 넣은것이 처음으로 나온다.(종이컵 디스펜서처럼)

 

처음에는 이 그림처럼 위에서 아래로 또는 오른쪽에서 왼쪽으로 생각했는데, 실제 메모리는 이렇게 막대형식이 아닌 주소를 저장하는 방식이므로 배열에 집에넣는 순서로 생각하는 것이 도움되었다.

자료구조 알고리즘을 사용해 큐나 스택을 대신할 수 있다. 하지만 코드가 길어지기 때문에 큐와 스택의 사용이 권장된다.

'개발일지 > 잡다한 IT지식' 카테고리의 다른 글

chatGPT  (0) 2023.01.13
http multipart  (0) 2022.06.24
mvp 디자인 패턴  (0) 2022.02.12
mvc디자인 패턴  (0) 2022.02.08
동기적 처리와 비동기적 처리  (0) 2022.02.07