function Queue:ctor(capacity)
self.capacity = capacity or 5
self.queue = {}
self.size_ = 0
self.head = -1
self.rear = -1
end
function Queue:EnQueue(element)
if self.size_ == 0 then
self.head = 0
self.rear = 1
self.size_ = 1
self.queue[self.rear] = element
else
local temp = (self.rear + 1) % self.capacity
if temp == self.head then
print("Error: capacity is full.")
return
else
self.rear = temp
end
self.queue[self.rear] = element
self.size_ = self.size_ + 1
end
end
function Queue:DeQueue()
if self:IsEmpty() then
print("Error: The Queue is empty.")
return
end
self.size_ = self.size_ - 1
self.head = (self.head + 1) % self.capacity
local value = self.queue[self.head]
return value
end
function Queue:clear()
self.queue = nil
self.queue = {}
self.size_ = 0
self.head = -1
self.rear = -1
end
function Queue:IsEmpty()
if self:Size() == 0 then
return true
return false
end
function Queue:Size()
return self.size_
end
function Queue:Peek()
if self:IsEmpty() then
print("Error: The Queue is empty.")
return
end
return self.queue[(self.head + 1) % self.capacity]
end
self.capacity = capacity or 5
self.queue = {}
self.size_ = 0
self.head = -1
self.rear = -1
end
function Queue:EnQueue(element)
if self.size_ == 0 then
self.head = 0
self.rear = 1
self.size_ = 1
self.queue[self.rear] = element
else
local temp = (self.rear + 1) % self.capacity
if temp == self.head then
print("Error: capacity is full.")
return
else
self.rear = temp
end
self.queue[self.rear] = element
self.size_ = self.size_ + 1
end
end
function Queue:DeQueue()
if self:IsEmpty() then
print("Error: The Queue is empty.")
return
end
self.size_ = self.size_ - 1
self.head = (self.head + 1) % self.capacity
local value = self.queue[self.head]
return value
end
function Queue:clear()
self.queue = nil
self.queue = {}
self.size_ = 0
self.head = -1
self.rear = -1
end
function Queue:IsEmpty()
if self:Size() == 0 then
return true
end
end
function Queue:Size()
return self.size_
end
function Queue:Peek()
if self:IsEmpty() then
print("Error: The Queue is empty.")
return
end
return self.queue[(self.head + 1) % self.capacity]
end