TIL #2 // Stack, Queue

이윤주·2019년 12월 29일
0

Stack

스택IMG.PNG

Stack구조란??

Stack구조란 제일 나중에 들어온 자료가 제일 먼저 나가는 후입선출(last in, first out, LIFO)구조이다. 일상생활에서 간단한 예를 들면 프링글스 과자에서는 나중에 쌓인(후입) 과자를 가장 먼저 먹게(선출) 된다.

Stack Method

  • push(): 스택에 자료를 넣는다(top에 쌓는것 )

  • pop(): 스택의 자료를 추출한다(후입선출, top부터 꺼낸다)

  • peek(): 마지막에 위치한 자료를 확인한다.

  • isEmpty(): 스택이 비어있는지 판단한다 (비어있으면 true)

  • isfull() : 스택이 가득 차있는지 판단한다(가득차면 true)

    Stack pseudocode

  • Stack에 자료를 넣을 시
    1) push()를 이용하에 스택에 자료를 넣는다
    2) 공간이 차있다면 push()를 하였을 때 오류(오버플로우)가 뜨게 된다 -> isFull()을 이용하여 true를 반환하는지 확인한다.

  • Stack에 자료를 추출할 시
    1) pull()을 이용하여 자료를 추출한다.
    2) 공간이 비어있다면 pop()을 하였을 시 오류(언더플로우)가 뜨게 된다 -> isEmpty()를 하였을 때 true를 반환한는지 확인한다.

Queue

queueIMG.png

Queue구조란?

Queue구조란 Stack구조와 반대로 먼저들어온 자료가 제일 먼저 나가는 선입선출(first in, first out, FIFO)구조이다. 선착순 물품을 받기위해 줄을 선다던지의 일상적인 예를 들 수 있다.

Queue Method

  • enqueue(): 큐에 자료를 넣는다

  • dequeue(): 큐의 데이터를 추출한다

  • peek(): 마지막에 위치한 자료를 확인한다.

  • isEmpty(): 큐가 비어있는지 판단한다 (비어있으면 true)

  • isFull(): 큐가 가득 차있는지 판단한다(가득차면 true)

    Queue pseudocode

  • Queue에 자료를 넣을 시
    1) enqeue()를 이용하에 Queue에 자료를 넣는다
    2) 공간이 차 있다면 enqueue()를 하였을 때 오버(언더플로우)가 뜨게 된다 -> isFull()를 이용하여 true를 반환하는지 확인한다.

  • Queue에 자료를 추출할 시
    1) dequeue()을 이용하여 자료를 추출한다.
    2) 공간이 비어있다면 dequeue()을 하였을 시 오류(언더플로우)가 뜨게 된다 -> isEmpty()를 하였을 때 true를 반환한는지 확인한다.

0개의 댓글