1. 程式人生 > >用JS來實現一個棧

用JS來實現一個棧

分別使用線性表和連結串列兩種形式

//使用連結串列實現
function linkedStack(){
    var top;
    var length = 0;
    function Node(element){
        this.element = element;
        this.next = null;
    }
    this.push = function(element){
        var node = new Node(element);
        if(top){
            node.next = top;
top = node; length++; return true; }else{ top = node; length++; return true; } } this.pop = function(){ if(top){ var current; current = top; top = top.next; current.
next = null; length--; return current; }else{ return "stack empty" } } this.top = function(){ return top; } this.length = function(){ return length; } this.toString = function(){ var string = ''; var
current = top; while(current){ string += current.element; current = current.next; } return string; } this.clear = function(){ top = null; length = 0; return true; } } //使用線性表實現 function Stack(){ var stack = []; this.push = element =>stack.push(element); this.pop = ()=>stack.pop(); this.length = ()=>stack.length; this.top = ()=>{ if(stack.length){ return stack[stack.length-1]; } return "stack empty" } this.clear = ()=>{ stack.length = 0; return true; } this.toString = ()=>{ if(stack.length){ stack.reverse(); return stack.join(" "); } return "stack empty" } }