原创: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;
    }
};
时间: 2024-10-25 21:53:12

原创:Javascript循环队列类的相关文章

队列及循环队列(Java实现)

package ch03; /* * 队列类 */ public class MyQueue { // 底层实现是一个数组 private long[] arr; // 有效数据大小 private int elements; // 队头 private int front; // 队尾 private int end; /** * 默认构造方法 */ public MyQueue() { arr = new long[10]; elements = 0; front = 0; end = -1

JavaScript实现队列结构(Queue)

JavaScript实现队列结构(Queue) 一.队列简介 队列是是一种受限的线性表,特点为先进先出(FIFO:first in first out). 受限之处在于它只允许在表的前端(front)进行删除操作: 在表的后端(rear)进行插入操作: 相当于排队买票,先来的先买票,后来的后买票. 队列的应用: 打印队列:计算机打印多个文件的时候,需要排队打印: 线程队列:当开启多线程时,当新开启的线程所需的资源不足时就先放入线程队列,等待CPU处理: 队列类的实现: 队列的实现和栈一样,有两种

C++学习笔记50:队列类模板

队列是只能向一端添加元素,从另一端删除元素的线性群体 循环队列 在想象中将数组弯曲成环形,元素出队时,后继元素不移动,每当队尾达到数组最后一个元素时,便再回到数组开头. 队列类模板 //Queue.h #ifndef QUEUE_H #define QUEUE_H #include <cassert> //类模板的定义 template <class T, int SIZE = 50> class Queue { private: int front, rear, count; T

数据结构Java实现07----队列:顺序队列&amp;顺序循环队列、链式队列、顺序优先队列

数据结构Java实现07----队列:顺序队列&顺序循环队列.链式队列.顺序优先队列 一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其另一端进行删除操作. 队列中允许进行插入操作的一端称为队尾,允许进行删除操作的一端称为队头.队列的插入操作通常称作入队列,队列的删除操作通常称作出队列. 下图是一个依次向队列中插入数据元素a0,a1,...,an-

固定尺寸内存块的缓冲队列类及C++实现源代码

-------------------------------------------------------------------------------- 标题: 固定尺寸内存块的缓冲队列类及实现源代码 作者: 叶飞虎 日期: 2014.10.21 -------------------------------------------------------------------------------- 在一般的线性操作应用中(如: 接收缓冲区), 可能须要频繁分配和释放内存块, 频繁

hdu1873(看病要排队)循环队列害死我了

点击打开杭电1873 Problem Description 看病要排队这个是地球人都知道的常识. 只是经过细心的0068的观察.他发现了医院里排队还是有讲究的.0068所去的医院有三个医生(汗.这么少)同一时候看病.而看病的人病情有轻重,所以不能依据简单的先来先服务的原则.所以医院对每种病情规定了10种不同的优先级.级别为10的优先权最高,级别为1的优先权最低.医生在看病时.则会在他的队伍里面选择一个优先权最高的人进行诊治.假设遇到两个优先权一样的病人的话.则选择最早来排队的病人. 如今就请你

Atitit.升级软件的稳定性---基于数据库实现持久化 循环队列 循环队列

Atitit.升级软件的稳定性---基于数据库实现持久化  循环队列 环形队列 1. 前言::选型(马) 1 2. 实现java.util.queue接口 1 3. 当前指针的2个实现方式 1 1.1. 用一个游标last 来指示 (指针表字段last ),麻烦的,不推荐 1 1.2. (简单,推荐)使用循环次数来指示,每循环加1   (字段cirTimes),order by cirtimes 1 4. 表格设计id, cirTimes,createtime,handlerID,recID,d

数据结构基础(7) --循环队列的设计与实现

队列 队列简称队, 也是一种操作受限的线性表, 只允许在表的一端进行插入, 而在表的另一端进行删除.其特点为"先进先出(FIFO)",故又称为先进先出的线性表,简单队列如图所示: 循环队列 顺序队列有一个先天不足, 那就是空间利用率不高, 会产生"假溢出"现象,即:其实队列中还有空闲的空间以存储元素, 但我们在判断队列是否还有空间时, 队列告诉我们队列已经满了, 因此这种溢出并不是真正的溢出, 在data数组中依然存在可以放置元素的空位置, 所以说这是一种"

Java用数组实现循环队列

复习了下数据结构,用Java的数组实现一下循环队列. 队列的类 1 //循环队列 2 class CirQueue{ 3 private int QueueSize; 4 private int front; 5 private int rear; 6 private int[] queueList ; 7 8 public CirQueue(int QueueSize){ 9 this.QueueSize = QueueSize; 10 queueList = new int[QueueSiz