🫠 선형자료구조 - 스택(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인 것을 확인할 수 있다.
'자료구조 & 알고리즘' 카테고리의 다른 글
[자료구조] 큐(Queue) 특징 및 메서드 구현 실습 (1) | 2023.03.15 |
---|---|
[자료구조] 스택(Stack) indexOf(), includes() 메서드 구현 (1) | 2023.03.14 |
[자료구조] 스택(Stack) 정의 및 실습 (0) | 2023.03.13 |
[자료구조] 선형자료구조 연결리스트(Linked List) 노드(Node) 위치값 찾기 (0) | 2023.03.09 |
[자료구조] 선형자료구조 연결리스트(Linked List) 노드(Node) 위치값으로 삭제하기 (0) | 2023.03.08 |