queue 메모리 구현하기 질문입니다
귀1여운렩
이것이 문제입니다. 제가 짠 코드대로 해보니 컴파일도 되지 않네요 ㅜㅜ 조언 부탁드립니다.
큐는 들어가는 포인터와 나오는 포인터가 필요하여 두개의 포인터를 하나의
구조체로 묶어서 구현하는 것이 편리하다. (추가 설명 그림 참조)
큐 구조체는 다음과 같다.
struct queue {
struct item * front; // 빼내가는 포인터
struct item * back; // 삽입하는 포인터
};
main함수는 다음과 같다.
int main(){
struct queue myQueue = {0, 0};
int num;
while ( scanf(%d, &num)==1){
insert_back(&myQueue, num);
}
printall(&myQueue); // 입력된 순서의 반대 순서로 출력된다.
while ( ! isEmpty(&myQueue) ){
num = remove_front(&myQueue);
printf(큐에서 나온 데이터: %d.\n, num);
}
remove_front(&myQueue); // 빈 경우에 호출해본다.
}
queue 포인터의 사용법은 다음과 같다.
이번에는 이중 포인터를 사용할 필요가 없다.
int isEmpty( struct queue *q){
return q-front == 0;
}
=== 아래는 실행 예제이다. 1 2 3 4 네개를 입력한 경우
414] a.out
1 2 3 4
1 -- 2 -- 3 -- 4 -- END
큐에서 나온 데이터: 1.
큐에서 나온 데이터: 2.
큐에서 나온 데이터: 3.
큐에서 나온 데이터: 4.
큐가 비었습니다.