5.3.2 큐 구현

먼저 동적으로 큐를 생성하는 함수를 작성합시다.

여기서 설계한 큐는 연결 리스트이므로 연결리스트를 동적으로 생성하여 반환합니다. 이처럼 이미 작성한 기능을 이용하여 전달하는 역할만 하는 함수를 래퍼(Wrapper) 함수라고 부릅니다.

동적으로 생성한 큐를 소멸하는 함수도 래퍼 함수로 작성합니다.

 

큐에 자료를 보관하는 함수도 연결리스트에 순차 보관하는 함수를 호출하는 래퍼 함수로 작성합니다.

 

큐에서 자료를 꺼내는 함수를 작성합시다.

만약 큐가 비어있지 않을 때 처리할 코드를 작성합시다.

연결리스트에 처음 보관한 자료를 가진 노드의 위치 정보를 얻어옵니다.

그리고 그 위치의 보관한 자료를 반환할 element에 설정합니다.

이제 해당 노드를 연결리스트에서 제거합니다.

element를 반환합니다.

 

큐가 비었는지 확인하는 함수는 연결리스트의 usage 멤버 값이 0인지 확인한 결과를 반환합니다.

 

다음은 EHQueue.c 파일의 내용입니다.