链表的JS实现

作者: puxiaotaoc | 来源:发表于2018-09-16 23:18 被阅读2次
/*链栈的JS实现*/  
function LinkedStack(){  
        //节点结构定义  
        var Node = function(element){  
        this.element = element;  
        this.next = null;  
    }  
  
    var length = 0,  
        top; //栈顶指针  
    //压栈操作    
    this.push = function(element){  
        var node = new Node(element),  
            current;  
          
        if(!top){  
            top = node;  
            length++;  
            return true;  
        }else{  
            node.next = top;  
            top = node;  
            length++;  
            return true;  
        }  
    }  
        //退栈操作  
    this.pop = function(){  
        var current = top;  
        if(top){  
            top = current.next;  
            current.next = null;  
            length--;  
            return current;  
        }else{  
            return 'null stack';  
        }  
    }  
        //获取栈顶节点  
    this.top = function(){  
        return top;  
    }   
        //获取栈长  
    this.size = function(){  
        return length;   
    }  
          
    this.toString = function(){  
        var string = '',  
            current = top;  
  
        while(current){  
            string += current.element;  
            current = current.next;  
        }  
  
        return string;  
    }  
        //清空栈  
    this.clear = function(){  
        top = null;  
        length = 0;  
  
        return true;  
    }  
}  
  
//顺序栈的JS实现 这里直接使用了JS内置的Array对象  
function ArrayStack(){  
    var arr = [];  
        //压栈操作  
    this.push = function(element){  
        arr.push(element);  
    }  
        //退栈操作  
    this.pop = function(){  
        return arr.pop();  
    }  
        //获取栈顶元素  
    this.top = function(){  
        return arr[arr.length-1];  
    }  
        //获取栈长  
    this.size = function(){  
        return arr.length;  
    }  
        //清空栈  
    this.clear = function(){  
        arr = [];  
        return true;  
    }  
  
    this.toString = function(){  
        return arr.toString();  
    }  
}  

参考链接:栈的JS实现

相关文章

  • JS简单实现一个链表

    JS简单实现一个链表

  • markdown js实现链表list

    先学会js语法,再用js写好链表的代码可以实现链表的插入删除等操作,然后将写好的代码改为js格式的文件放入node...

  • 链表 --js实现

    1.链表的概念 列表存储的是有序元素集合,不同于数组,链表的中的元素在内存中并不是连续放置的。每个元素是由一个存储...

  • js实现链表

    function LinkedList() { var Node = function (element)...

  • js 链表实现

    一、节点的实现 我都知道链表就是用有向线段把多个节点按顺序串起来,要实现链表首先要实现节点,而每一个节点,有一个自...

  • js实现链表

    设计一个基于对象的链表 我们需要设计两个类,Node类用来表示结点,LinkedList类提供插入结点、删除结点、...

  • JS 实现链表

    Node 为创建节点的构造函数;LinkedList 为链表操作函数的构造函数。对链表的操作包括:插入节点、移除节...

  • 链表的JS实现

    参考链接:栈的JS实现

  • 前端校招准备系列--js实现链表的基本操作

    自己总结了一下链表的基本操作的实现,文末还有几道简单的算法题可供练习! 前端校招准备系列--使用js实现链表的操作...

  • js单链表实现

    定义 ​ 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的...

网友评论

    本文标题:链表的JS实现

    本文链接:https://www.haomeiwen.com/subject/hcrqnftx.html