js 복잡 한 데이터 구조의 Stack 실현

1532 단어
머리말
Stack 은 특수 한 목록 입 니 다. 나중에 들 어가 서 먼저 나 오 는 특징 이 있 습 니 다. 스 택 꼭대기 에 없 는 요 소 는 접근 할 수 없습니다. 스 택 밑 에 있 는 요 소 를 얻 으 려 면 먼저 위의 요 소 를 제거 해 야 합 니 다.
정의.
우선, 우 리 는 Stack 에 대해 정의 하고 추상 화 하 는 것 이 좋 습 니 다. 본 사례 는 아직도 배열 을 데이터 소스 로 사용 합 니 다.
1. 속성
  • 데이터 원본dataSource
  • 스 택 은 배열 의 위치 top
  • 2. 방법
  • 입고 push
  • 스 택 팝
  • 스 택 꼭대기 요소 peek
  • 로 돌아 가기
  • 창고 안의 원소 개수 getSize
  • 를 되 돌려 줍 니 다.
  • 스 택 클 리 어
  • Stack 클래스 구현
    class Stack{
      private _dataSource: Array;
      private _top: number;
    
      constructor() {
        this._top = 0;
        this._dataSource = [];
      }
      public push = () => { }
      public pop = () => { }
      public peek = () => { }
      public clear = () => { }
      public getSize = () => { }
    }
    

    실현 방법
  • push 는 배열 에 요 소 를 추가 하고 top 을 증가 시 킵 니 다
  • public push = (element: T): void => {
        this._dataSource.push(element);
        this._top++;
      }
    
  • pop 은 배열 에 요 소 를 삭제 하고 top 을 감소 시 킵 니 다
  • public pop = (): T => {
        this._top--;
        return this._dataSource.pop();
      }
    
  • peek 스 택 정상 요소 로 돌아 가기
  • public peek = (): T => {
        return this._dataSource[this._top - 1];
      }
    
  • getSize 스 택 내 요소 갯 수 되 돌려 주기
  • public getSize = (): number => this._top;
    
  • clear 창고 비우 기
  • public clear = (): void => {
        this._top = 0;
        this._dataSource = [];
      }
    

    전체 실례 github 를 보십시오

    좋은 웹페이지 즐겨찾기