Queue 구현

김병훈·2021년 7월 22일
0

section2

목록 보기
2/6

Variable

  • 데이터를 저장한 Object type의 storage
  • Queue의 가장 앞을 가리키는 Number type front
  • Queue의 가장 뒤를 가라키는 Number type rear

=> Queue는 FIFO, LILO

Method

  • size() : Queue 에 추가된 데이터 크기를 리턴해야한다.
  • enqueue() : Queue에 데이터를 추가할 수 있어야한다.
  • dequeue() : 가장 먼저 추가된 데이터를 큐에서 삭제하고 삭제한 데이터를 리턴해야한다.

Caution

  • 내장객체 method 사용금지
  • 포인터 변수들은 0으로 초기화

수도코드

  1. 가장 앞에 있는 값 front , 뒤에있는 값 rear
    => constructor() 생성 this.storage, front, rear

  2. queue의 사이즈를 구해야한다.
    => queue는 추가 될 때 , rear 값이 커지고, 삭제될때 front가 변경이 되기 때문에, 각 값을 알아야 size()를 구할 수 있다.
    그러므로 , size = rear - front

  3. queue에 element를 추가한다.
    => 새롭게 추가될 요소의 index를 나타내는 rear값을 키로, 요소를 값으로 하여 storage에 할당해준다. this.rear는 다음 인덱스를 가리키게 해서 새로운 요소에 대비한다.

  4. queue에서 element를 제거한 후 , 해당 element를 반환한다.
    a. => 만약 size가 0이라면 아무일도 일어나지 않는다.
    (rear - front가 0이면)
    b. => this.front + 1 로 가장 앞에 있는 요소를 다시 설정한 후, 변수에 저장하고, Queue 에서 삭제한다.
    (그래야 먼저 들어온 값이 먼저 삭제된다)

profile
블록체인 개발자의 꿈을 위하여

0개의 댓글