2014-10-22 3 views
0

길이가 4 인 배열이 있고 일부 문자를 대기열에 포함시키고 축약을 제거하고 싶다고 가정 해 보겠습니다. 작업의 다음 문자를 추가 할 공간이 충분하지 않으면 어떻게 될까요?순환 배열에 대기열 구현

:

1 인큐 순차 캐릭터 B, N, R

index 0 index 1 index 2 index 3 --------Here front index = 0 and size = 3 
B   N   R  

(2) 큐에서 두 문자

index 0 index 1 index 2 index 3 ------Now the front index = 2 and size = 1 
         R  

(3) 문자 P, O, A, W를 순서대로 큐에 넣습니다.

index 0 index 1 index 2 index 3 
O   A   R   P 

제 질문은 : "사용"할 공간이 남아 있지 않은 이유는 문자 W가 왜 일어날까요?

답변

1

쉬운 대답은 없습니다. 원형 버퍼의 단점입니다.

2) 오류 코드의 일종을 반환)

1 전화를 차단하고 공간 (다중 스레드 환경을 가정)에있을 기다립니다 구현에 따라이 상황을 관리 할 수있는 다양한 일이있다 또는 예외를 던지십시오

3) 버퍼 크기를 조정하고 두 포인터를 업데이트하십시오 (추가/삭제와 비교할 때 값 비싼 작업 임)