L.L. Queues & L.L. Traversal
Basic L.L. Queue
Value | Next |
---|---|
a | pointer |
b | pointer |
… | … |
g | pointer |
h | nullptr |
as a stack, this L.L. would be:
Pseudo-code:
class Node{
Type data
Node * next
}
Enqueue + Dequeue – First Versions
Variables:
- float (pointer to stack)
- back (pointer to stack)
- size (# elements in queue)
Dequeue:
Pseudo-code:
dequeue(){
temp = front
val = front->data
front = front->next
delete temp
size = size-1
return val
}
Diagram:
Value | Next |
---|---|
b | pointer |
… | … |
g | pointer |
h | nullptr |
Unqueue
Pseudo-code:
enqueue(x){
n = new node containing x
back->next = n
back = back->next
size = size+1
}
Diagram:
Value | Next |
---|---|
a | pointer |
b | pointer |
… | … |
g | pointer |
h | |
x | nullptr |
Empty Queue
A stack with a
After dequeue
After enqueue(b)
Enqueue & Dequeue are different from empty/non-empty queues.
Enqueue
Example 1: Empty queue
Enqueue b
Example 2: Starter queue
enqueue b
Pseudo code:
enqueue(x){
if size > 0{
back->next = new Node(x)
back = back->next
} else {
back = new Node(x)
front = back
}
size = size+1
}
Dequeue
Pseudo code:
front = front->next
return value
That code has the following effect upon a queue.
becomes
while returning a.
Example 1:
dequeue (b)
Example 2:
dequeue
Return b
Pseudo code
dequeue(){
temp = front
val = front->data
front = front->next
delete temp
size = size-1
return val
}
Traversing the List
Pseudo code:
displayList(){
Node * cur = front;
while(cur!=nullptr){
output cur->data
cur = cur->next
}
}
A diagram which shows the cursor going from c, to d to be (in order from front to back).
Linked List Ends
Transcriber’s note: this is the same as in 06. The left/right arrows denote a double linked list, even though the current set of slides is talking about only singly linked lists.
For [4, 5, 6]:
versus
For [5]:
versus
For []:
versus
List Class: Traversing the List
Pseudo code:
displayList(){
Node * cur = head->next
while(cur!=tail){
output cur->data
cur = cur->next
}
}
Graphic of cur
moving through each (empty) element of the queue.