数据结构 - 队列

news/2024/7/4 1:46:21

队列

数据结构 - 队列,先入先出。

// 队列实现
// ES5
var Queue = function() {
  var items = [];

  // 队列入列
  this.enqueue = function(element) {
    items.push(element);
  };

  // 队列出列
  this.dequeue = function() {
    return items.shift();
  };

  // 检查队列第一个元素
  this.front = function() {
    return items[0];
  };

  // 检查队列是否为空
  this.isEmpty = function() {
    return items.length == 0;
  };

  // 获取队列长度
  this.size = function() {
    return items.length;
  };

  // 检查items
  this.getItem = function() {
    return items;
  };
};

队列 - 实现击鼓传花游戏。

// 玩家列表
var names = ['a', 'b', 'c', 'd', 'e', 'f'];

// 游戏规则
var number = 3;

// 击鼓传花游戏
var game = function(names, number) {
  var q = new Queue();
  for (var i = 0; i < names.length; i++) {
    q.enqueue(names[i]);
  }

  var over = '';
  while (q.size() > 1) {
    for (var i = 0; i < number - 1; i++) {
      q.enqueue(q.dequeue());
    }
    over = q.dequeue();
    console.log('淘汰的玩家是:' + over);
  }

  return q.dequeue();
};

http://www.niftyadmin.cn/n/4253833.html

相关文章

Ubuntu系统经常使用操作指令说明

使用U盘拷贝压缩文件 文件的压缩方法详见&#xff1a;3.6文件归档压缩及其释放 U盘直接插入机器USB接口。等待自己主动弹出窗体&#xff0c;在弹出窗体选择“文件->打开终端”&#xff0c;打开的终端当前文件夹默觉得U盘所在的文件夹。直接在当前文件夹进行拷贝的操作就可…

struts2中form的theme属性

struts2中theme属性包括xhtml,html,simple,ajax 。默认是xhtml theme&#xff1a;设置struts2标签的主题&#xff0c;默认为xhtml。themexhtml时&#xff1a;会默认额外生成tr,td。themesimple时&#xff1a;就生成标签所对应的html标签形式。 在默认情况下,表单元素是分布在不…

世界杯2号宣言

&#xff01;&#xff01;&#xff01;世界杯宣言&#xff01;&#xff01;&#xff01; 听&#xff0c;征招的号角已吹响&#xff0c;龙起卷&#xff0c;马长嘶&#xff0c;血液开始沸腾~ 兄弟们&#xff0c; 抄起喇叭&#xff0c;挥起彩旗&#xff0c;走&#xff0c;看球去…

数据结构 - 链表

链表数据结构 - 链表。 // 链表实现 // ES5 var linkedList function() {// 链表头var head null;// 链表长度var length 0;// 辅助类&#xff1a;节点var Node function(element) {this.element element;this.next null;};// 链表尾追加元素this.append function(eleme…

数据结构 - 集合

集合数据结构 - 集合&#xff0c;不重复。 // 集合实现 // ES5 var MySet function() {var items {};// 检查元素是否存在this.has function(value) {return items.hasOwnProperty(value);};// 添加元素this.add function(value) {// 集合不重复 - 先检查元素是否存在if (!…

libuv定时器的使用

2019独角兽企业重金招聘Python工程师标准>>> 定时器有这么以下几个函数: int uv_timer_init(uv_loop_t *, uv_timer_t *handle); int uv_timer_start(uv_timer_t *handle, uv_timer_cb cb, uint64_t timeout, uint64_t repeat); int uv_timer_stop(uv_timer_t *hand…

手工杀掉传奇终结者变种

EXERT.EXE是病毒文件 病毒发作现象及危害&#xff1a; 该病毒是一个可以在WIN9X/NT/2000/XP等操作系统上运行的盗号木马。病毒会强行终止多种杀毒软件的进程&#xff0c;使其不能正常运行。它会频繁检查游戏客户端的窗口&#xff0c;如果窗口存在&#xff0c;就会取得当前鼠标…

STL源代码剖析 容器 stl_vector.h

本文为senlie原创。转载请保留此地址&#xff1a;http://blog.csdn.net/zhengsenlie vector ---------------------------------------------------------------------- 描写叙述&#xff1a; 1.迭代器 vector 维护的是一个连续线性空间。它的迭代器是普通指针。 能满足 Random…