• JavaScript数据结构——栈和队列


    :后进先出(LIFO)的有序集合
    队列:先进先出(FIFO)的有序集合
    ------------------------------------------------------------------------------------------------------
    (1)栈方法声明:
    首先,采用数组来保存栈里的元素。
    序号
    方法
    说明
    1
    push ( element(s) )
    添加一个(或几个)新元素到栈顶
    2
    pop ( )
    移除栈顶的元素,同时返回被移除的元素
    3
    peek ( )
    返回栈顶的元素,不对栈做任何修改
    4
    isEmpty ( )
    如果栈里没有任何元素就返回 true,否则返回 false
    5
    clear ( )
    移除栈里的所有元素
    6
    size ( )
    返回栈里的元素个数。和数组的 length 属性很类似
    对于集合,最好用 size 代替 length 
    栈的实现:
     1 function Stack() {
     2     var items = [];
     3 
     4     this.push = function(element) {
     5         items.push(elemnt);
     6     }
     7 
     8     this.pop = function() {
     9         return items.pop();
    10     }
    11 
    12     this.peek = function() {
    13         return items[items.length - 1];
    14     }
    15 
    16     this.isEmpty = function() {
    17         return items.length == 0;
    18     }
    19 
    20     this.size = function() {
    21         return items.length;
    22     }
    23 
    24     this.clear = function() {
    25         items = [];
    26     }
    27 
    28     this.print = function() {
    29         console.log(items.toString());
    30     }
    31 }
    Stack.js

    (2)队列方法声明:

    首先,采用数组来保存栈里的元素。
    序号
    方法
    说明
    1
    enqueue ( element(s) )
    向队列尾部添加一个(或多个)新的项
    2
    dequeue ( )
    移除队列的第一(即排在队列最前面的)项,并返回被移除的元素
    3
    front ( )
    返回队列中的第一个元素——最先被添加,不对队列做任何修改
    4
    isEmpty ( )
    如果队列里没有任何元素就返回 true,否则返回 false
    5 size ( )
    返回队列里的元素个数。和数组的 length 属性很类似
    队列的实现:
     1 function Queue() {
     2     var items = [];
     3 
     4     this.enqueue = function(element) {
     5         items.push(element);
     6     };
     7 
     8     this.dequeue = function() {
     9         return items.shift();
    10     };
    11 
    12     this.front = function() {
    13         return items[0];
    14     };
    15 
    16     this.isEmpty = function() {
    17         return items.length == 0;
    18     };
    19 
    20     this.size = function() {
    21         return itemt.length;
    22     };
    23 
    24     this.print = function() {
    25         console.log(items.toString());
    26     };
    27 }
    Queue.js
     
    参考书籍:《学习JavaScript数据结构与算法》
     
    Scoop It and Enjoy the Ride!
  • 相关阅读:
    MVC三层架构学习总结实例
    JSON & Ajax
    设计模式之单例模式
    设计模式之静态工厂方法
    Gitee 添加了ssh公钥还是需要账户和密码
    MySQL日期时间函数大全[转]
    session 注意事项
    session 入库2 垃圾回收机制
    session 入库的实现
    PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
  • 原文地址:https://www.cnblogs.com/Ruth92/p/5296593.html
Copyright © 2020-2023  润新知