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

Javascript의 스택 데이터 구조


스택은 대부분의 프로그래밍 언어에서 일반적으로 사용되는 ADT(추상 데이터 유형)입니다. 예를 들어 카드 더미 또는 접시 더미 등과 같이 실제 스택처럼 동작하기 때문에 스택이라는 이름이 붙여졌습니다.

Javascript의 스택 데이터 구조

스택은 한쪽 끝에서만 작업을 허용합니다. 이 기능은 LIFO 데이터 구조를 만듭니다. LIFO는 후입선출을 의미합니다. 여기서 마지막에 배치(삽입 또는 추가)된 요소가 먼저 액세스됩니다. 스택 용어로 삽입 연산을 PUSH 연산, 제거 연산을 POP 연산이라고 합니다.

다음 다이어그램은 스택에 대한 작업을 보여줍니다 -

Javascript의 스택 데이터 구조

다음은 스택을 나타내는 완전한 자바스크립트 클래스입니다 -

예시

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 = [];
   }
   display() {
      console.log(this.container);
   }
   isEmpty() {
      return this.container.length === 0;
   }
   isFull() {
      return this.container.length >= this.maxSize;
   }
   push(element) { // Check if stack is full
      if (this.isFull()) {
         console.log("Stack Overflow!") return;
      }
      this.container.push(element)
   }
   pop() { // Check if empty
      if (this.isEmpty()) {
         console.log("Stack Underflow!") return;
      }
      this.container.pop()
   }
   peek() {
      if (isEmpty()) {
         console.log("Stack Underflow!");
         return;
      }
      return this.container[this.container.length - 1];
   }
   clear() {
      this.container = [];
   }
}