본문 바로가기

알고리즘&코테

JS 알고리즘 공부 4회차 with. BaaaaaaaarkingDog

# 스택

"한쪽 끝에서만 원소를 넣거나 뺄 수 있는 자료구조"

 

스택의 성질 및 시간복잡도

  1. 원소의 추가/제거 O(1)
  2. 최상단의 원소 확인 O(1)
  3. 최상단이 아닌 나머지 원소들의 확인 및 변경이 원칙적으로 불가능
    • 추가적으로 원소를 확인하거나 변경하는 기능을 추가할 수는 있음
const stack = [];
let pos = 0;

function push(data) {
  // stack.push(data);
  stack[pos++] = data;
}

function pop() {
  // 최상단은 pos를 기준으로 출력하고,
  // push 또한 pos를 기준으로 입력하기 때문에
  // pos만 줄여도 상관이 없다.
  pos--;
  
  // 값이 필요한 경우에만 반환하면 된다.
  // return stack.pop();
}

function top() {
  if(pos === 0) return null;
  return stack[pos-1];
}

 

출처 & 참고

스택, BaaaaaaaarkingDog, 2024.10.22