标签:
在Lua中的table不是一种简单的数据结构,它可以作为其他数据结构的基础。其他语言提供的数据结构,如数组、记录、线性表、队列、集合等,在Lua中都可以通过table来表示。而且使用Lua实现这些数据结构的效率高。
--双向队列的实现 DoubleQueue = {} function DoubleQueue.new() local Queue = { first = 0, last = -1 } function Queue.pushFirst( queue,value ) local first = queue.first -1 queue.first = first queue[ first ] = value end function Queue.popFirst( queue ) local first = queue.first if first > queue.last then error(" queue is empty! ") end local value = queue[first] queue[first] = nil queue.first = first +1 return value end function Queue.pushLast( queue,value ) local last = queue.last +1 queue.last = last queue[last] = value end function Queue.popLast( queue ) local last = queue.last if last < queue.first then error( " queue is empty! " ) end local value = queue[last] queue[last] = nil queue.last = last -1 return value end function Queue.len( queue ) return queue.last - queue.first +1 end return Queue end
标签:
原文地址:http://www.cnblogs.com/Richard-Core/p/4380734.html