• JavaScript--数据结构之队列


    5.1 队列的操作
    队列是特殊的列表,只能一端入队(队尾)插入操作,一端出队(队头)删除操作。底层用数组,利用javascript数组优于其它语言的数组的方法,shift();删除第一个元素,push();队尾添加元素。分别对应出队,入队操作。
    队列是一种先进先出的数据类型(FIFO);
    一些常见用处:jQuery的动画执行顺序,打印机打印顺序,操作系统进程执行顺序,一些银行等的排队问题。
    5.2 队列的实现(用数组实现的队列);
    队列中的一些方法,
    入队队列队尾添加一个元素enqueue();
    出队队列队头删除一个元素dequeue();
    获取队列队头的元素front();
    获取队列队尾的元素back();
    队列的长度length;
    清空队列元素remove();
    判断队列元素是否为空isEmpty();
    获取队列元素qDatas();

     1 function Queue() {
     2   this.dataStore = [];
     3   this.length = 0;
     4   // this.enqueue = enqueue;
     5   // this.dequeue = dequeue;
     6   // this.remove = remove; //清空队列
     7   // this.isEmpty = isEmpty; //判断队列是否为空
     8   // this.qDatas = qDatas; //获取队列元素
     9   // this.front = front; //获取队列第一个元素
    10   // this.back = back; //获取队列最后一个元素
    11 }
    12 Queue.prototype.enqueue = function(element) {
    13   this.dataStore.push(element);
    14   this.length++;
    15 };
    16 Queue.prototype.dequeue = function() {
    17   this.dataStore.shift();
    18   this.length--;
    19 };
    20 Queue.prototype.remove = function() {
    21   this.dataStore = [];
    22   this.length = 0;
    23 };
    24 Queue.prototype.isEmpty = function() {
    25   return this.length == 0 ? true : false;
    26 };
    27 Queue.prototype.qDatas = function() {
    28   var datas = "";
    29   for(var i = 0;i < this.dataStore.length;i++) {
    30     datas += this.dataStore[i]+"
    ";
    31   }
    32   return datas;
    33 };
    34 Queue.prototype.front = function() {
    35   return this.dataStore[0];
    36 };
    37 Queue.prototype.back = function() {
    38   return this.dataStore[this.dataStore.length-1];
    39 };


    5.3 队列的使用-方块舞伴的分配
    ...
    5.4 使用队列对数据进行排序

  • 相关阅读:
    [eslintpluginvue] [vue/nounusedvars] 'scope' is defined but never used.
    Vue项目中添加锁屏功能
    前端文档汇总(含代码规范、开发流程、知识分享,持续更新)
    vscode格式化Vue出现的问题
    下盘不稳 被忽视的项目风险
    项目沟通中的一点经验心得
    如何才能更合理地分配项目奖金?
    关于企业的薪酬体系之思考
    导致项目失败的两大隐形杀手
    如何让项目总结会议更有效果?
  • 原文地址:https://www.cnblogs.com/intelwisd/p/7285327.html
Copyright © 2020-2023  润新知