자료구조

Queue (based LinkedList) 실습

FDEE 2020. 10. 27. 16:04

1. class Node

- int data : 생성시 값을 받아 저장한다

- Node* next : 초기값=NULL

 

2. class LinkedList

- Node* head : 초기값=NULL

- Node* tail : 초기값=NULL

 

3. LinkedList : empty() : 여기 예제에선 안쓰인다

- head, tail 둘다 NULL 인지 여부 반환

 

4. LinkedList : append(data)

- tail->next 위치에 새로운노드를 넣는다

- tail을 새로운노드로 수정한다

 

5. LinkedList : remove_front()

- head 위치의 값을 반환 후 삭제한다

- head를  temp로 임시저장한다

- temp의 값을 tmp로 임시저장한다

- head = head->next로 수정한다

- delete temp로 기존 head를 삭제한다

- 임시저장된 tmp 값을 반환한다

 

6. LinkedList : peek_front()

- head->data를 반환한다

 

7. LinkedList : peek_rear()

- tail->data를 반환한다

 

 

 

8. class Queue (based LinkedList)

-  int n : 큐의 개수

- LinkedList* queue : 리스트 포인터

 

9. Queue : size()

- 큐의 개수인 n을 반환한다

 

10. Queue : empty()

- 큐의 개수인 n==0 여부를 반환한다

 

11. Queue : front()

- 큐의 맨앞 값을 반환한다

- 큐가 비어있는 경우 Empty 상태를 반환한다

- 그외의 경우 queue->peek_front()를 반환한다

 

12. Queue : rear()

- 큐의 맨뒤 값을 반환한다

- 큐가 비어있는 경우 Empty 상태를 반환한다

- 그외의 경우 queue->peek_rear()를 반환한다

 

13. Queue : enqueue(data)

- 큐의 rear+1 위치에 새로운 값을 넣는다

- 큐의 개수인 n을 증가시킨다

- queue->append(data)를 실행한다

 

14. Queue : dequeue()

- 큐의 front 위치의 값을 반환하고 삭제한다

- 큐의 개수인 n을 감소시킨다

- queue->remove_front()를 반환한다