酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

lua双向队列

在 Lua 中,可以通过自定义数据结构来实现双向队列。以下是一个简单的双向队列的 Lua 实现示例: ```lua local DoublyQueue = {} function DoublyQueue:new() local queue = {front = 1, rear = 0} setmetatable(queue, {__index = self}) return queue end function DoublyQueue:isEmpty() return self.rear < self.front end function DoublyQueue:enqueueFront(element) self.front = self.front - 1 self[self.front] = element end function DoublyQueue:enqueueRear(element) self.rear = self.rear + 1 self[self.rear] = element end function DoublyQueue:dequeueFront() if not self:isEmpty() then local element = self[self.front] self[self.front] = nil self.front = self.front + 1 return element end return nil end function DoublyQueue:dequeueRear() if not self:isEmpty() then local element = self[self.rear] self[self.rear] = nil self.rear = self.rear - 1 return element end return nil end function DoublyQueue:peekFront() if not self:isEmpty() then return self[self.front] end return nil end function DoublyQueue:peekRear() if not self:isEmpty() then return self[self.rear] end return nil end -- 测试示例 local dq = DoublyQueue:new() dq:enqueueFront(10) dq:enqueueRear(20) dq:enqueueFront(5) print(dq:peekFront()) print(dq:peekRear()) print(dq:dequeueFront()) print(dq:dequeueRear()) ``` 在上述示例中,我们创建了一个 `DoublyQueue` 类,实现了双向队列的常见操作,如入队(从前端和后端)、出队(从前端和后端)、查看前端和后端元素以及判断队列是否为空等。 [2024-07-30 10:20:37 | AI写代码神器 | 498点数解答]

相关提问