原创:Javascript循环队列类
需要滚动显示最多一定数量的信息,于弄了个这个
var LeesCircleQueue=function(size)
{
// 队列数组
var _queue=[]; // 队首索引
var _front=0; // 队尾索引
var _rear=0; // 元素个数
var _length=0; // 队列的内存大小,但实际可用大小为_capacity-1
var _capacity = size; // 添加元素
this.Push=function(item)
{
var nIndex = GetNextRearIndex();
_queue[nIndex] = item;
if (_length < _capacity)
_length++;
}
// 移除头部元素
this.Pop=function()
{
if (_length > 0)
{
_length--;
_front++;
if (_front == _capacity)
_front = 0;
}
if (_length == 0)
{
_front = _rear = 0;
}
}
// 获取全部内容
this.GetAllItem=function()
{
var tmp = [];
for (var i = 0; i < _length; i++)
{
tmp[i] = _queue[(_front + i) % _capacity];
}
return tmp;
}
// 获取下一个索引
function GetNextRearIndex()
{
if (_length == _capacity)//full
{
_rear = (_rear + 1) % _capacity;
_front = (_rear + 1) % _capacity;
}
else
{
if (_length > 0)
_rear = (_rear + 1) % _capacity;
else
{
_front = _rear = 0;
}
}
return _rear;
}
};
原创:Javascript循环队列类的更多相关文章
- Java实现一个简单的循环队列
在某些时候,我们不能被要求像数组一样可以使用索引随机访问,而是需要被限制顺序处理业务,今天介绍一种先进先出(FIFO)的线性数据结构:队列, 当然,还有后进先出(LIFO)的处理方式,即为栈(后续有时 ...
- 数据结构-循环队列(Python实现)
今天我们来到了循环队列这一节,之前的文章中,我介绍过了用python自带的列表来实现队列,这是最简单的实现方法. 但是,我们都知道,在列表中删除第一个元素和删除最后一个元素花费的时间代价是不一样的,删 ...
- 使用 JavaScript 实现基本队列、优先队列和循环队列
1.基本队列的实现 基本队列的方法中,包含了 ①向队列(尾部)中添加元素(enqueue).②(从队列头部)删除元素(dequeue).③查看队列头部的元素(front).④查看队列是否为空(isEm ...
- JavaScript数据结构与算法(四) 循环队列的实现
实现击鼓传花,需要用到上一章所述队列类Queue TypeScript方式实现源码 let hotPotato = (nameList, num) => { let queue = new Qu ...
- [原创]Javascript模拟“类”的综合实现方式以及部分细节【截至ES6】
[原创]Javascript模拟“类”的综合实现方式以及部分细节[截至ES6] 前言 最近几个旧项目里使用的图片编辑插件出现Bug, 经Review 后确定需要在其内外均做些改动,但是头疼的发现部 ...
- javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例
1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ...
- Javascript数据结构与算法--队列(顺序队列、优先队列、循环队列)的实现与用法
前言 队列和栈非常类似,前面已经讲过了栈的实现与用法,现在我们来说说队列. 队列介绍 队列遵循FIFO(First In First Out,先进先出)原则的一组有序的项. 队列是一种特殊的线性表,特 ...
- 622.设计循环队列 javascript实现
设计你的循环队列实现. 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环.它也被称为“环形缓冲器”. 循环队列的一个好处是我们可以利用这个队列 ...
- JavaScript数据结构——队列的实现与应用
队列与栈不同,它遵从先进先出(FIFO——First In First Out)原则,新添加的元素排在队列的尾部,元素只能从队列头部移除. 我们在前一篇文章中描述了如何用JavaScript来实现栈这 ...
随机推荐
- 使用air进行移动app开发常见功能和问题(一)
1. 获取最近联系人 思路:侦听Geolocation的update事件,获取经度和纬度信息,再把坐标信息上传至服务器,服务器比较坐标信息算出距离,返回最近位置的若干个人. update时间在2种情 ...
- php开发环境配置 web UI模板
web ui 能快速的整合进来?dwz? easyui? bootstrap 在Apache 中配置: 在http.conf中加入php的设置 #php5_startphpIniDir " ...
- Nginx重定向[Rewrite]配置 for wordpress & Discuz
首先Apache的Rewite规则差别不是很大,但是Nginx的Rewrite规则比Apache的简单灵活多了Nginx可以用if进行条件匹配,语法规则类似Cif ($http_user_agent ...
- 使用Atomikos Transactions Essentials实现多数据源JTA分布式事务--转载
原文:http://www.ite/topic/122700 9.17 update:使用NonXADataSourceBean. Mysql在5.0版本和Connecter/J5.0版本后提供了XA ...
- ClientKey实现登录QQ空间,并设置背景音乐
ClientKey大家都知道的,通过webbrowser登录后取得Cookie并计算出GTK,即可操作空间的POST. 源代码中引用了苏飞的Http类库,自己修改添加了一些拓展方法. 下载地址:htt ...
- sass+require实现侧边栏
一.效果图(如下)及使用的技术 实现用sass实现页面中右侧固定侧边栏的样式,用require.js实现返回顶部的功能 二.sass 具体的sass的介绍就不多说了,大家可以参考sass官网介绍,下面 ...
- Android_Intent_data_type
layout.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...
- linux__升级java版本
java下载地址:http://www.oracle.com/index.html 使用which java查看到,Java的环境变量指向的还是/usr/bin/java,问题找到了.于是就进行了下面 ...
- Java队列实现
队列数组实现:队列长度有限,但是考虑到平时一般都使用有界队列,这应该也不算是个缺点 public class Queue { private Object[] objs; private int he ...
- dig命令浅析
dig命令,功能更强大的命令. man dig dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] \ [-p ...