큐와 스택은 둘 다 배열이다. 일반적인 배열과는 다르게 배열에 넣는 순서와 나오는 순서가 정해진 특별한 배열이다.
스택(stack)은 아래의 그림처럼 작용한다.
배열에 넣을 때는 push함수를 쓰고, 뺄때는 pop함수를 쓴다.
여기서 스택의 특별한 성질이 나오는데 LIFO(Last In First Out)구조이다 .
한마디로 마지막에 넣은 것이 먼저나오고 처음 넣은 것이 마지막에 나온다는 것이다.(총의 탄창같이)
큐(queue)는 아래의 그림처럼 나온다.
배열에 넣을 때는 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 |