Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

자바스크립트에서 스택 생성


JavaScript의 배열이 스택의 모든 기능을 제공하지만, 우리 고유의 스택 클래스를 구현해 보겠습니다. 우리 클래스는 다음과 같은 기능을 가질 것입니다 -

  • push(element):스택의 맨 위에 요소를 푸시하는 함수입니다.
  • pop():상단에서 요소를 제거하고 반환하는 함수입니다.
  • peek():스택 맨 위에 있는 요소를 반환합니다.
  • isFull():스택의 요소 제한에 도달했는지 확인합니다.
  • isEmpty():스택이 비어 있는지 확인합니다.
  • clear():모든 요소를 ​​제거합니다.
  • display():배열의 모든 내용을 표시

스택의 최대 크기를 취하는 생성자와 이 클래스에 대한 다른 함수를 구현할 때 도움이 될 도우미 함수 display()를 사용하여 간단한 클래스를 정의하는 것으로 시작하겠습니다. 또한 스택이 가득 찼는지 비어 있는지 확인하기 위해 isFull 및 isEmpty라는 2개의 함수를 추가로 정의했습니다.

전체 함수는 컨테이너의 길이가 maxSize 이상인지 확인하고 그에 따라 반환합니다.

비어 있음 함수는 컨테이너의 크기가 0인지 확인합니다.

이는 다른 작업을 정의할 때 도움이 됩니다. 이 시점부터 정의한 함수는 모두 Stack 클래스 안에 들어갈 것입니다.

예시

class Stack {

   constructor(maxSize) {

      // Set default max size if not provided

      if (isNaN(maxSize)) {

         maxSize = 10;

      }

      this.maxSize = maxSize; // Init an array that'll contain the stack values.

      this.container = [];

   }



   // A method just to see the contents while we develop this class

   display() {

      console.log(this.container);

   }



   // Checking if the array is empty

   isEmpty() {

      return this.container.length === 0;

   }

   

   // Check if array is full

   isFull() {

      return this.container.length >= maxSize;

   }



   push(element) {

      // Check if stack is full

      if (this.isFull()) {

         console.log("Stack Overflow!");

         return;

      }

      this.container.push(element);

   }

}