알고리즘 : 스택 이해하기
스택
스택은 개별 데이터 조각을 보관하는 컨테이너입니다. 스택과 큐를 비교할 수 있습니다. 한 가지 중요한 차이점은 스택에서 처음으로 들어가는 항목이 스택에서 나가는 마지막 항목이 된다는 것입니다. 스택을 이해하는 예는 플레이트 스택입니다. 언급했듯이 스택의 첫 번째 항목은 스택의 마지막 항목입니다. 캐비닛에 접시를 놓을 때 첫 번째 접시가 맨 아래에 있고 다음 접시가 그 위에 쌓입니다. 첫 번째 접시 위에 접시가 몇 개 있으면 바닥이나 첫 번째 접시를 제거하는 것이 점점 더 어려워집니다. 스택에 올려 놓은 상단 또는 마지막 접시를 제거하는 것이 훨씬 쉽습니다. 배열과 배열 메서드를 사용하여 스택과 기능을 구현합니다.
스택 클래스 만들기
스택에 레코드를 푸시 또는 추가하고, 스택에서 레코드를 팝하거나 제거하고, 해당 레코드를 제거하지 않고 스택의 레코드를 "보기"하는 기능이 있는 스택 데이터 구조를 생성하라는 요청을 받았습니다.
class Stack {
constructor() {
this.data = [];
}
/* using constructor, we can initialize an array when we create an instance of a stack. The array is a stack property called data.
*/
}
이제 스택에 레코드를 추가하는 푸시 메서드를 구현합니다.
class Stack {
constructor() {
this.data = [];
}
push() {
//use array method push and pass in an argument record to push or add into the stack.
}
}
class Stack {
constructor() {
this.data = [];
}
push(record) {
this.data.push(record);
}
}
다음 메소드는 스택에 마지막 또는 가장 최근에 추가된 레코드를 제거하는 pop 메소드입니다.
class Stack {
constructor() {
this.data = [];
}
push(record) {
this.data.push(record);
}
pop() {
return this.data.pop();
}
// Include return keyword so we get the removed record from the stack.
}
마지막으로 스택에 레코드가 남아 있는지 확인할 수 있는 peek 메서드를 구현합니다.
class Stack {
constructor() {
this.data = [];
}
push(record) {
this.data.push(record);
}
pop() {
return this.data.pop();
}
peek() {
// return the last record in the stack without removing it
}
}
스택 클래스를 구축하기 위해 배열을 사용하고 있기 때문에 대괄호 표기법을 사용하여 배열의 마지막 항목을 읽을 수 있으며 실제로 스택의 마지막 레코드를 읽을 수 있습니다.
class Stack {
constructor() {
this.data = [];
}
push(record) {
this.data.push(record);
}
pop() {
return this.data.pop();
}
peek() {
return this.data[this.data.length - 1];
}
}
자원
Stephen Grider's Algorithms and Data Structures Udemy Course
Interview Cake
Reference
이 문제에 관하여(알고리즘 : 스택 이해하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sfrasica/algorithms-understanding-stacks-583b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)