TIL_Stack, Queue

김진경·2020년 3월 21일
0

IM19

목록 보기
8/21

Stack

Stack은 ADT(추상 자료형)의 일종이다.

ADT(Abstract Data Type)는 데이터의 구체적인 구현 방식은 생략하고, 데이터의 추상적 형태와 그 데이터를 다루는 방법만을 정해놓은 것이다.

Stack의 특징.

  • LIFO(Last in First Out). 나중에 넣은 데이터가 먼저 나온다.

  • 데이터를 집어넣을 수 있는 선형(linear) 자료형이다

  • 데이터를 넣는 push, 데이터를 추출하는 pop, 가장 나중에 넣은 데이터를 확인하는 peek 등의 메서드를 사용할 수 있다.

    (나중에 들어간 3이 먼저 나온 모습이다)

Stack의 구성요소

Method

Push() : 스택에 데이터를 넣는다.
Pop() : 스택의 최상위 값을 가져온다.
isEmpty() : 스택이 비었는 지 확인한다.
isFull() : 스택이 꽉 차있는 지 확인한다.
peek() : 스택에서 top이 가리키는 데이터를 확인한다.

Property

top : 가장 나중에 들어간 값, 맨 위에 위치한 값
maxsize : 스택의 최대 할당 크기
storage : 스택이 가지고 있는 자료들의 모음

stack overflow : 스택의 배열 최대크기보다 더 많은 데이터를 넣었을 때 발생하는 오류.
stack underflow : 스택의 배열에 아무것도 없을 때 pop()으로 데이터를 삭제하려 할때 발생하는 오류.

Queue

Queue는 ADT(추상 자료형)의 일종이다.

ADT란 데이터의 구체적인 구현 방식은 생략한 채, 데이터의 추상적 형태와 그 데이터를 다루는 방법만을 정해놓은 것이다.

Queue의 특징을 나열하면 다음과 같다.

  • FIFO(First in First Out). 먼저 집어넣은 데이터가 먼저 나오는 형태이다.
  • 데이터를 집어넣을 수 있는 선형(linear) 자료형이다.
  • 데이터를 집어넣는 enqueue, 데이터를 추출해내는 dequeue 등의 작업이 가능하다

    (데이터가 들어가는 것이 Enqueue, 데이터가 나오는 것이 Dequeue)

Queue의 구성요소

Method

enqueue() or insert() : 배열의 맨 뒷부분에 데이터를 넣는다.
dequeue() or remove() : 배열 맨 앞에 위치한 데이터를 지운다.
peek() : 배열 맨 앞의 데이터를 읽는다.

Property

front : 가장 앞에 위치한 데이터를 가리킨다.
rear : 가장 뒤에 위치한 데이터를 가리킨다.

queue overflow : 큐의 배열 최대크기보다 더 많은 데이터를 넣었을 때 발생하는 오류.
queue underflow : 큐의 배열에 아무것도 없을 때 데이터를 꺼내려 할때 발생하는 오류.

profile
Maktub.

0개의 댓글