: (스택)은 스택이라고도 하며 제한된 작업을 수행하는 선형 테이블입니다.
스택의LIFO(후입선출)
상단 : 삽입 및 삭제 작업을 테이블 끝으로만 제한하는 선형 목록,
스택의 하단 : 삽입 및 삭제 작업을 제한하는 선형 목록을
따릅니다.머리까지만.
푸시(Pushing): 스택에 새 요소를 삽입하는 것을 푸시(Push), 푸시(Push) 또는 푸시(Push)라고도 합니다.이는
새 요소를 스택의 최상위 요소 위에 놓아 스택의 새로운 최상위 요소로 만드는 것입니다.
스택 요소는 스택의 최상위 요소를 삭제하고 인접한 요소를 스택의 새로운 최상위 요소로 만듭니다.
프로세스 지향이 무엇인지 생각해보세요.
프로세스 지향은 문제를 해결하기 위한 단계를 분석 한
다음 기능을 사용하여
단계별로 실행하고 호출 하기만 하면 됩니다.
- push(element )는 스택의 맨 위에 하나 이상의 요소를 추가합니다.
- pop()은 맨 위의 요소를 삭제하고 제거된 요소를 반환합니다.
- peek() 는 스택의 맨 위에 있는 요소를 반환합니다.
- isEmpty() 는 스택이 비어 있는지 확인하는 데 사용됩니다.
- 스택의 요소를 지우는 데는 Clear()가 사용됩니다.
- 스택의 요소 수 를 반환하는 데는 사용됩니다.
구현하기 전에 생각해 보겠습니다. 구현 방법
먼저 배열 메서드를 빌려 구현하므로
스택을 시뮬레이션하려면 빈 배열을
만들어야 합니다.클래스를 구축하고, 배열을 사용하여 시뮬레이션하고,
클래스에 다양한 메서드를 작성하여
배열 메서드를 부분적으로 호출합니다.
일반적으로 클래스를 사용하여
배열을 래핑하는 방법은 스택
클래스 Stack { 생성자() { this.item = [] } 푸시(요소) { this.item.push(요소) } 팝() { this.item.pop()을 반환합니다. } 엿보기() { this.item[this.item.length - 1] 반환 } isEmpty() { this.item.length === 0을 반환합니다. } 분명한() { this.item = [] 크기() { this.item.length를 반환하세요. } } //Stack 클래스 인스턴스화 const stack = new Stack() 스택.푸시(4) 스택.푸시(6) console.log(스택.팝()) console.log(스택.peek()) console.log(스택.isEmpty()) Console.log(stack.size())
결과:
:
문제를 구성하는 것들을 여러 객체로 분해하는 것입니다.
객체는 특정 단계를 완료하기 위해 설정되는 것이 아니라
문제를 해결하는 과정에서 무언가의 동작을 설명하기 위해 설정됩니다.
그런 다음 이
- push(element )는 스택의 맨 위에 하나 이상의 요소를 추가합니다.
- pop()은 맨 위의 요소를 삭제하고 제거된 요소를 반환합니다.
- peek() 는 스택의 맨 위에 있는 요소를 반환합니다.
- isEmpty() 는 스택이 비어 있는지 확인하는 데 사용됩니다. 비어 있으면 비어 있습니다
- .clear()는 스택의 요소를 지우는 데 사용됩니다.
- size() 는 스택의 요소 수를 반환하는 데 사용됩니다.
- toString()은 스택을 형식으로 인쇄하는 데 사용됩니다.
- 클래스
를 구현할 때 시뮬레이션 스택에 객체를 사용합니다.
class Stack { 생성자() { this.count=0 this.items = {} } 푸시(요소) { this.items[this.count]=요소 this.count++ } 팝() { if(this.isEmpty()){ 정의되지 않은 반환 } this.count-- const 결과=this.items[this.count] this.items[this.count] 삭제 결과 반환 } 엿보기() { if(this.isEmpty()){ 정의되지 않은 반환 } this.items[this.count-1] 반환 } isEmpty() { this.count===0을 반환하세요. } 분명한() { this.items={} this.count=0 } 크기() { this.count를 반환하세요. } toString(){ if(this.isEmpty()){ 정의되지 않은 반환 } let objectString=`${this.items[0]}` for(let i=1;i<this.count;i++){ objectString=`${objectString},${this.items[i]}` } 객체 문자열 반환 } } const 스택 = 새로운 스택() 스택.푸시(23) 스택.푸시(34) 스택.푸시(80) console.log(스택.팝()) console.log(스택.peek()) console.log(스택.isEmpty()) console.log(스택.크기()) console.log(stack.toString())는
객체를 사용하여 스택을 시뮬레이션할 때 key:value를 사용하여
데이터를 저장합니다. 예를 들어 this.items[this.count]=element는
this.count를 사용하여 이 구조에 기록합니다. 스택의 크기.
숫자를 삽입할 때 count를 키로 지정
하고 값을 값으로 삽입합니다. 이때 this.count++를 변경해야 합니다.
pop() 및 peek()에 대해서는 toString() 메서드에서
먼저 스택이 비어 있는지 확인해야 합니다.