본문 바로가기

카테고리 없음

Stack

StackFILO(firt-in,Last-Out)의 형태를 가지고 있다. 가장 먼저 들어온 값이 Stack의 가장 바닥에 들어가 값이 추가될수록 그 위에 쌓이게 됩니다. 값을 제거 하려면 반대로 위에서 부터 꺼내기 시작해야 합니다.

FILO을 쉽게 생각하면 블록쌓기를 생각하면 된다 쌓은 블록을 무너트리지 않고 블록을 다른 상자에 담으려면 위에 올려진 블록부터 차근차근 빼내면 된다

ㅇㅡㄹ

위 그림을 보면 값이 들어간 순서는 1,2,3,4 이고 output 순서는 반대로 4,3,2,1이 된다.


Stack의 Property

  • stack의 구조를 보면 가장 위의 값을 확인할수 있기에 'top'이라는 property를 갖고 있다.

 

stack의 Method

Method 실행 결과 값
push() 값을 스택에 추가한다 -
pop() 값을 스택에서 제거한다. stack의 top 값
peek() stack의 top에 위치하는 값을 확인한다 stack의 top 값
size() 스택의 길이를 확인한다 stack이 length
isEmpty() 스택에 값이 있는지 확인한다 boolean

psedoCode

 

 

  • stack이라는 array를 선언하고 stacktop을 0으로 지정한다

 

push 

  • 주어진 스택에 가장 뒤에 값을 추가한다

arr.push()

pop

  1. 스택이 비어있지 않다면
  2. pop 메소드를 이용해 stack이라는 배열의 가장 상단에 값을 제거할수 있다.

 

if(isEmpt){
arr.pop()   //가장 나중에 들어간 스택 제거
}else{
return undefind
}

 

size

  • 스택이 비어있지 않다면 길이측정
  • stack 배열의 길이를 측정해 값을 출력한다.
var size = arr.length;
return size

isEmpt

  • stack의 legnth 가 1 이상인지 확인해 true or false 를 출력한다.
if(arr.length > 0){
return true;
}else{
return false
}