검수요청.png검수요청.png

스택

위키원
theraker (토론 | 기여)님의 2020년 8월 11일 (화) 17:17 판
이동: 둘러보기, 검색

스택(stack)은 후입선출(後入先出, Last In First Out; LIFO)또는 선입후출(先入後出, First in Last out)의 자료구조이다. 데이터 저장소에서 새로 들어오는 데이터의 위치가 저장소의 끝 부분(Top 혹은 Top pointer라고 한다)이고, 써먹기 위해 내보내는 데이터 역시 저장소의 끄트머리에서 나간다. 입력은 push, 출력은 pop이다. peek는 Top의 위치에 있는 데이터를 확인하는 것을 말한다.[1]

특징

  • 한 쪽으로만 들어가기 때문에 처음 들어간 것은 밑에 깔려서 나중에 나올 수 밖에 없다. (First In Last Out=FILO)
  • 스택에 자료를 넣는 것을 PUSH라고 한다.
  • 스택에 자료를 빼내는 것을 POP이라고 한다.
  • 스택에 제일 위에 자료를 TOP이라고 한다.
  • 스택에 제일 아래 자료를 BOTTOM이라고 한다.
  • 스택이 담을 수 있는 사이즈 이상을 PUSH 할 때는 Overflow가 발생한다.
  • 스택에서 자료가 전부 POP되고 자료가 더이상 없는 공백 상태일 때, POP이 호출되면 Underflow가 발생한다.[2]

입/출력 방식

자료구조 스택.png[3]
1. 가장 먼저 5를 PUSH 한다. 스택 자료 구조에 가장 아래에 위치하게 된다.
2. 차례대로 PUSH 4, PUSH 3을 한 결과이다.
3. POP 2회를 실시하게 되면 출력 결과는 3,4가 된다. 즉 3은 가장 나중에 입력 되었지만 가장 먼저 출력이 된다.[3]


각주

  1. 나무위키,〈스택(자료구조)
  2. 라이언,〈자료구조 스택(Stack)이란?〉, 2017년 11월 27일
  3. 3.0 3.1 Lkt_Programmer,〈스택(Stack) 자료 구조 〉, 2017년 9월 28일

참고자료

같이 보기

자료구조


  검수요청.png검수요청.png 이 스택 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.