Queue와 그 성질에 대해 알아보고, 직접 구현해보자
Queue
큐는 먼저 들어온 데이터가 먼저 나가는 First In First Out 구조를 가진 자료구조이다. 파이프 뒤쪽으로는 데이터를 계속 집어넣고, 앞쪽으로는 데이터를 계속 꺼낸다고 보면 되겠다.
가장 먼저 줄을 선 사람이 가장 먼저 용무를 끝내고 사라지듯, 큐도 그러하다.
구현
Class
일단 꺼내는 것은 맨 처음, 추가하는 것은 맨 뒤이기 때문에 이를 알고 있어야 한다.
1 |
|
데이터를 가지고 있는 Node도 만들어야 한다.
1 |
|
Node는 본인의 data와 다음 Node를 알고 있다.
Queue add
큐에 데이터를 추가한다. 비어있는 큐라면 self.first에 data를 추가하고, 그렇지 않으면 Queue.last의 next에 data를 추가한다.
1 |
|
Queue pop
큐에서 데이터를 꺼내온다. 비어있는 경우에 예외처리를 한다.
1 |
|
Queue get
가장 첫번째 데이터를 return한다.
1 |
|
Queue traverse
queue를 순회하면 가지고 있는 데이터를 보여준다.
1 |
|
실행
1 |
|