JS의 스택 구조

1368 단어

Stack 클래스 구현

function Stack(){
    this.dataStore = [];
    this.top = 0;
    this.push = push;
    this.pop = pop;
    this.peek = peek;
    this.clear = clear;
    this.length = length;
}
function push(element){
    this.dataStore[this.top++] = element;
}
function peek(){
    return this.dataStore[this.top-1];
}
function pop(){
    return this.dataStore[--this.top];
}
function clear(){
    this.top = 0;
}
function length(){
    return this.top;
}

실례: 디지털 간의 상호 변환


가령 디지털 n을 b를 기수로 하는 숫자로 변환하고 싶다면 변환을 실현하는 알고리즘은 다음과 같다. (1) 최고위는 n%b이고 이 위치를 창고에 눌러 넣는다.(2) n(3) 대신 n/b를 사용하여 n이 0이 될 때까지 1, 2단계를 반복하고 남은 숫자가 없을 때까지 (4) 창고 안의 요소를 계속 꺼내서 창고가 비어 있을 때까지 순서대로 배열하면 변환된 숫자의 문자열 형식을 얻는다
function mulBase(num,base){
    var s = new Stack();
    do{
        s.push(num % base);
        num = Math.floor(num /= base)
    }while(num > 0);
    var converted = "";
    while(s.length() > 0){
        converted += s.pop();
    }
}

실례: 한 단어가 회문인지 아닌지 판단

function isPlaindrome(word){
    var s = new Stack();
    for(var i=0;i 0){
        rword += s.pop();
    }
    if(word == rword){
        return true;
    }else{
        return falsej;
    }
}

데이터 구조와 알고리즘 Javascript에서 정리

좋은 웹페이지 즐겨찾기