Programming/C,C++

LinkedQueue

홍열 2012. 11. 18. 13:20
728x90

오랜만에 포스팅입니다.

오늘은 LinkedList로 만든 Queue입니다.


Queue는 우리 일상 생활에도 많이 존재합니다.

예를 들어서 은행에서 먼저 온사람이 먼저 서비스 받고, 나중에 온 사람이 나중에 서비스 받는 구조입니다.

즉, 선입선출의 특성을 지닙니다.(First - In - First - Out , FIFO)
먼저 들어온게 먼저 나가고, 나중에 들어온게 나중에 서비스를 받습니다.

Queue를 구현하는 방법은 많이 있습니다만, 저는 여기서 LinkedList를 가지고 구현해보도록 하겠습니다.(이유는 배열로 구현한 것은 미리 Queue의 크기를 정해야 하지만 LinkedList는 그럴 필요 없기 때문입니다. 또 한가지 이유는 제가 요즘 포인터에 대해서 좀 더 친숙해 질려고 노력중이기 때문입니다.)

Queue를 그림으로 표현하면 다음과 같이 표현합니다.


 Queue에는 포인터가 2개가 존재합니다. 맨 처음을 가르키는 포인터와 맨 끝을 가르키는 포인터

enQueue는 Data를 집어 넣는 것이고, deQueue는 Data를 빼는 것입니다.

enQueue시에는 rearNode를 한단계 증가시켜주면 되고,

deQueue에는 frontNode를 한단계 증가시키고 메모리를 해제하면 되겠습니다.

linkedQueue.h


linkedQueue.cpp


main.cpp


linkedqueue.cpp

linkedqueue.h

main.cpp