001002003004005006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054055056057058059060061062063064065066067068069070071072073074
// (2021.2.23, 차재복, Cha Jae Bok, http://www.ktword.co.kr) // 자바스크립트 내장 자료구조인 배열을 이용한 스택(LIFO) 구현 // 기본 지원 메소드 : push(), pop(), peek(), size(), isEmpty(), clear() /* 구현 */ // 스택 클래스 class Stack { // 생성자 constructor() { this.items = []; // 빈 배열에 의한 스택 생성 } // top 원소 추가 push(element) { this.items.push(element); } // top 원소 제거 pop() { return this.items.pop(); } // top 원소 살피기(반환) peek() { return this.items[this.items.length - 1]; } // 크기 size() { return this.items.length; } // 비어있는지 여부 isEmpty() { return this.items.length === 0; } // 내용 비우기 clear() { this.items = []; } } // 작성중 ... /* 용법 */ /* // 스택 인스턴스 생성 const stack = new Stack(); stack.isEmpty(); // => true stack.push(3); // 3 => [3] stack.push(7); // 7 => [3,7] stack.push(9); // 9 => [3,7,9] stack.peek(); // => 9 stack.size(); // => 3 stack.pop(); // [3,7] => 9 stack.pop(); // [3] => 7 stack.pop(); // [] => 3 stack.size(); // => 0 */ // 작성중 ... /* [참고문헌] * Data Structures and Algorithms with JavaScript (2014) Michael McMillan * Hands-on Data Structures and Algorithms with JavaScript (2018) Kashyap Mukkamala * Learning JavaScript Data Structures and Algorithms (3rd 2018) Loiane Groner (*) * JavaScript Data Structures and Algorithms (2019) Sammie Bae * JavaScript Algorithms (2019) Oleksii Trekhleb,Sophia Shoemaker */