스택(Stack) & 큐(Queue) & 데큐(Double-ended Queue)

신동화·2021년 1월 3일
2

스택(Stack)

특징

  • 마지막에 저장한 데이터를 가장 먼저 꺼내는 후입선출(LIFO, Last In First Out) 구조
  • 입출력이 모두 한 방향으로 이루어지며, 입출력이 이루어지는 곳을 Top이라 한다.
  • 데이터를 삽입하는 것을 Push, 꺼내는 것을 Pop이라고 한다.
  • overflow : 스택의 모든 공간을 사용중일 때 더 이상 데이터를 삽입할 수 없음
  • underflow : 스택 내 사용중인 공간이 없을 경우 삭제가 불가능

용도

  • 지역변수 저장, 함수 호출, 인터럽트 처리 등

큐(Queue)

특징

  • 처음 저장한 데이터를 가장 먼저 꺼내는 선입선출(FIFO, First In First Out) 구조
  • 입출력이 양방향으로 이루어지며, 가장 먼저 삽입된 공간을 가리키는 포인터를 Front, 가장 마지막에 삽입된 공간을 가리키는 포인터를 Rear라 한다.
  • 삽입은 Enqueue, 삭제는 Dequeue 라고 한다.

용도

  • 운영체제 작업 스케줄링, 인쇄작업 대기 목록 등

데큐(Double-ended Queue)

특징

  • 큐와 스택의 장점을 합쳐놓은 자료구조
  • 양쪽 끝에서 삽입과 삭제가 모두 가능
  • Scroll(입력제한데크) : 입력이 한쪽 끝으로만 가능하도록 설정한 데크
  • Shelf(출력제한데크) : 출력이 한쪽 끝으로만 가능하도록 설정한 데크

데큐에서 사용되는 함수

참고

profile
Security & Develop

0개의 댓글