자료구조 & 알고리즘

[자료구조] 스택(Stack) push(), pop(), peek(), size() 메서드 구현

진기명기 2023. 3. 13. 23:46
🫠 선형자료구조 - 스택(Stack)은 배열의 push(), pop()과 유사한 구조를 가지고 있다. 이를 메서드로 구현해 보자.
물론 push(), pop() 등 속성을 사용해서 편리하게 구할 수 있지만, 생성자 함수에 메서드를 직접 구현하는 연습을 위해 작성해 보자!

 

❗️ 그전에 잠깐! 스택의 특징에 대해서 알고 오자 ⬇️⬇️⬇️ (전 시간 포스팅한 내용에 이어서 작성)

https://cyjcyj.tistory.com/105

 

[자료구조] 스택(Stack) 정의 및 실습

🫠 선형자료구조 - 스택(Stack)은 코딩테스트는 물론 js 기능 구현 등 많은 곳에 쓰인다. 뭔가 두리뭉실하게 알고는 있지만, 막상 코드를 작성해 보라고 하면 제대로 구조를 파악하기 어려울 것 같

cyjcyj.tistory.com

 

 


🫠 스택(Stack)의 메서드를 구현해 보자 ③

> push() : 데이터 추가 (맨 뒤에서부터 추가하는 것이 stack과 동일)

Stack.prototype.push = function(element){
  return this.array.push(element)
}
✅ push() 메서드는 인자값 element를 받아 뒤에서부터 추가한다.

 

 

 

🫠 스택(Stack)의 메서드를 구현해 보자 ④

> pop() : 데이터 삭제 (가장 끝쪽에서부터 삭제하는 것이 stack과 동일)

Stack.prototype.pop = function(){
  return this.array.pop() 
}

 

 

 

🫠 스택(Stack)의 메서드를 구현해 보자 ⑤

> peek() : 가장 끝 데이터를 반환(삭제하지 않고, 확인)

Stack.prototype.peek = function(){
  return this.array[this.array.length -1]
}
✅ peek()는 가장 끝 데이터가 어떤 것인지 확인 (삭제하는 것이 아니니, 헷갈리지 말 것!)

 

 

 

🫠 스택(Stack)의 메서드를 구현해 보자 ⑥

> size() : 스택 내 데이터 개수 확인

Stack.prototype.size = function(){
  return this.array.length
}

 

 

 

❗️메서드를 통해 결과를 확인하자!

let stack2 = new Stack([1, 2])
console.log(stack2) // Stack { array: [ 1, 2 ] }

stack2.push(3)
console.log(stack2) // Stack { array: [ 1, 2, 3 ] }

console.log(stack2.pop()) // 3
console.log(stack2) // Stack { array: [ 1, 2 ] }

console.log(stack2.peek()) // 2

console.log(stack2.size()) // 2
👉🏻 output : 주석 처리 확인
✅ stack2 객체를 생성자 함수 Stack을 통해 구현
✅ push()를 통해 맨 끝에 data = 3이 추가된 것을 확인할 수 있다.
✅ pop()을 통해 맨 끝 data = 3이 삭제된 것을 확인할 수 있다.
✅ peek()를 통해 가장 끝 data가 2인 것을 확인할 수 있다.
✅ size()를 통해 현재 stack2의 길이가 2인 것을 확인할 수 있다.