zoukankan      html  css  js  c++  java
  • Lua中实现队列(高效方式)

       

    转自http://www.cnblogs.com/stephen-liu74/archive/2012/06/25/2417894.html

    在Lua中实现队列的简单方法是使用table库函数insert和remove。但是由于这种方法会导致后续元素的移动,因此当队列的数据量较大时,不建议使用该方法。下面的代码是一种更高效的实现方式,如:

    List = {}
    
    function List.new()
        return {first = 0, last = -1}
    end
    
    function List.pushFront(list, value)
        local first = list.first - 1
        list.first = first
        list[first] = value
    end
    
    function List.pushBack(list, value)
        local last = list.last + 1
        list.last = last
        list[last] = value
    end
    
    function List.popFront(list)
        local first = list.first
        if first > list.last then
            error("List is empty")
        end
        local value = list[first]
        list[first] = nil
        list.first = first + 1
        return value
    end
    
    function List.popBack(list)
        local last = list.last
        if list.first > last then
            error("List is empty")
        end
        local value = list[last]
        list[last] = nil
        list.last = last - 1
        return value
    end
  • 相关阅读:
    tomcat-1
    oscache-2
    oscache-3
    oscache-1
    oscache-4
    缓存概要
    Criterion & DetachedCriteria
    Hibernate <查询缓存>
    Hibernate <二级缓存>
    Hibernate <一级缓存>
  • 原文地址:https://www.cnblogs.com/howeho/p/4023882.html
Copyright © 2011-2022 走看看