●Quene

 ▷데이터를 순차적으로 저장하는 자료 구조, First-in-First-out.

 ▶ADT

  ▷임의의 Object를 저장

  ▷삽입/삭제는 First-in-First-out 규칙을 따름

  ▶주요 명령

   ▷void queue(object): 데이터를 queue의 마지막에 삽입

   ▷object dequeue(): 가장 앞에 있는 데이터를 삭제함. 삭제한 데이터를 반환함.

  ▶보조 명령

   ▷object front(): 가장 앞에 있는 데이터를 반환함. (dequeue()과 다르게 삭제하지 않음)

   ▷int size(): 저장된 원소의 개수를 반환함.

   ▷bool empty(): 저장된 원소가 없으면 true 반환.

  ▶Exception

   ▷QueueEmpty: 빈 Queue의 요소에 접근하려 할 때. (front, dequeue)

   ▷QueueFull: Queue가 저장가능한 요소 이상으로 저장하려 할 때.

 

  ▶활용

   ▷직접: 대기열, Multiprogramming

   ▷간접: algorithm의 보조 데이터 구조, 다른 데이터 구조의 일부

 

○STL Queue

 ▷STL에서 제공하는 Queue타입, Vector를 기반으로 만들었으며 크기가 가변적임

 

 

 

○C++ Queue

 

 

Array-based Queue

 ▷N size의 배열을 환형 순환형식으로 사용.

 ▷3개의 변수 필요

  ▷f: 처음 요소의 index

  ▷r: 끝 요소 다음의 index (다음에 넣을 index)

  ▷n: queue에 있는 요소들의 개수

 

Linked-List-based Quene

 ▷Linked-List-based Stack과 비슷하지만, enquene은 Linked-List의 마지막에 새로운 요소를 삭제함.

 

 

Circularly Linked-List-based Quene

 ▷Linked-List-based Quene에서 enquene의 효율성을 위해 양쪽 끝을 연결한 것.

 ▷가장 마지막 요소의 포인터인 cursor 변수를 이용. (cursor->next : 가장 처음 요소)

 

 ◎코드 (Elem: String)

  ▷Node

  ▷Circulary Linked List

  ▷Linked Quene

'컴퓨터 지식 > 자료구조' 카테고리의 다른 글

Adapter  (0) 2020.10.28
Deque  (0) 2020.10.28
Stack  (0) 2020.10.12
알고리즘 해석  (0) 2020.10.06
Linked List  (0) 2020.10.06

+ Recent posts