티스토리 뷰
큐(Queue)
- 스택과 다르게 선입선출(FIFO) 구조를 가진다
- 쉽게 말해 데이터를 저장하는 입구와 데이터를 삭제(출력)하는 출구가 다른 저장 방식
- 예를 들어 번호표를 먼저 뽑은 손님이 먼저 서비스를 받는 상황
- front에서 데이터 삭제가 일어나고 , rear에서 데이터 삽입이 일어남
- 삭제를 Dequeue 라고하고 삽입을 Enqueue 라고 표현함
- peek : 스택 처럼 front에 있는 데이터를 읽음
기능
isEmpty
- 큐가 공백인지 아닌지 확인
isFull
- 큐가 포화상태인지 아닌지 확인
enQueue
- 데이터 삽입
deQueue
- 데이터 삭제
peek
- front 위치에 있는 데이터 읽음
Java 로 구현한 큐(Queue)
메인함수 구현 결과
순환 큐(Circular Queue)
- 큐는 FIFO구조를 가지기 때문에 rear에서 front 방향으로 데이터들이 이동함
- front에서 Dequeue가 일어나면 차례대로 top-1 번부터 rear 까지 top~rear+1 까지 이동해야 하는 상황이 일어남
- 데이터의 갯수가 많으면 추가적인 연산이 많이 일어나 성능 저하가 발생함
- 이를 해결하기 위해 순환 큐가 등장
- 시작과 끝이 연결되어 있는 큐 (마치 더블 링크드 리스트 처럼)
- 항상 front 는 비어 있어야 함(Dummy공간, 공백/포화 상태를 구별하기 위해)
- Enqueue 명령시 FULL인지 확인하는 절차 필요 FULL이면 Enqueue 불가능
- rear와 front가 같으면 EMPTY / rear 다음이 front 이면 FULL
'Development > 자료구조&알고리즘' 카테고리의 다른 글
[자료구조] 트리(Tree) (0) | 2017.11.09 |
---|---|
[자료구조] 데크(Deque) (0) | 2017.11.06 |
[자료구조] 스택(Stack) (0) | 2017.11.02 |
[자료구조] 리스트(List/ ArrayList / LinkedList) (0) | 2017.09.01 |
[자료구조] 추상자료형(ADT) (0) | 2017.08.31 |
- Total
- Today
- Yesterday
- Stack
- mariadb데이터 타입
- 400 badgateway
- 해시알고리즘
- mariadb 데이터타입
- mac mariadb 설치
- 스프링 부트 에러
- springframewor
- hash algorithm
- org.springframework.beans.factory.BeanDefinitionStoreException
- 스프링 부트 시작 에러
- mysql데이터타입
- hash알고리즘
- mariadb설치
- spring boot 시작 에러
- mysql데이터
- mysql 세팅
- mysql 데이터 타입
- 데크
- 스택
- HTTP
- 알고리즘
- 400 error
- Data Structure
- 큐
- mac mariadb
- mariadb
- 자료구조
- spring boot org.springframework.beans.factory.BeanDefinitionStoreException
- mac db설치
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |