Linear queue implementation with LinkedList¶
createQueue()
create a blank SingleLinkedList
Time Complexity - O(1)
Space Complexity - O(1)
enqueue(nodeValue):
create a node
node.value = nodeValue
node.next = null
if tail == null // queue empty
tail = node
else
tail.next = node
tail = node
Time Complexity - O(1)
Space Complexity - O(1)
deQueue()
if head == null
return error
tmpNode = head
head = head.next
return tmpNode.value
Time Complexity - O(1)
Space Complexity - O(1)
peek()
if head == null
return error
return head.value
Time Complexity - O(1)
Space Complexity - O(1)
isQueueEmpty()
if head == null
return true
return false
Time Complexity - O(1)
Space Complexity - O(1)
deleteQueue()
head = tail = null
Time Complexity - O(1)
Space Complexity - O(1)
Time and space complexity of lineart queue¶
| Time complexity | Space complexity | |
|---|---|---|
| create queue | O(1) | O(n) |
| enqueue | O(1) | O(1) |
| dequeue | O(1) | O(1) |
| peek | O(1) | O(1) |
| isEmpty | O(1) | O(1) |
| isFull | N/A | N/A |
| delete queue | O(1) | O(1) |
Again, isFull is not implemented because linked list can dinamically change it's size.