First In FIrst Out 이라는 개념을 가진 선형 자료구조. 선! 입! 선! 출!
Linear Queue와 Circula Queue 가 존재. (Queue스펠링 진짜 이상하다..)
Array로 표현하면 빈공간에 자동적으로 차는게 아니라
삭제는 Front(맨 앞의 인덱스)부터 사라짐. ->DeQueue
추가는 Rear(가장 마지막 인덱스) 부터 추가됨 -> EnQueue
만약 빈 인덱스에 값이 모두 추가가 되어 자리가 모두 찬 다면 값을 더이상 추가할 수 없다.
(하지만 자바스크립트의 경우는 값에따라 증감되기때문에 배열의 크기가 무한정 커질 수 있다는 단점이 있다.)
따라서 앞당기는 작업이 필요함
//정리 : 배열중간에 추가 or 삭제를 하게되면 위치 이후의 요소들을 한 칸씩 당겨주거나 밀어야한다. 그래서 shift와 unshift는 선형시간이 소요됨.
암튼...이럴때 크기가 커지는 것을 막기위해서...
어떻게하냐면?
Linked List로 표현하면 된다.
Circualr Queue 선형 큐
Fornt와 Rear가 이어져있는 Queue이기 때문에 Linked List로 구현했을 때 이점이 없다.
배열의 크기를 벗어나는 값이 들어올경우 0번 값부터 시작됨.
'자료구조 | 알고리즘' 카테고리의 다른 글
[자료구조]해시 테이블 (0) | 2023.03.02 |
---|---|
[자료구조]스택 (0) | 2023.01.18 |
[자료구조]연결리스트 (0) | 2023.01.18 |
[알고리즘]시간 복잡도 (0) | 2023.01.18 |
자료구조와 알고리즘의 차이점은? (0) | 2023.01.18 |