Lecture 9 - Queues (1)
Lecture 9 - Queues (1)
CSC - 220
Lecture 10
Queues
Data Structures
Sequential
Direct Access
Access Graphs Trees
dequeue
create
QUEUE
isempty
size
Stack Operations 8
Transformers
•Enqueue
•Dequeue Change state
•MakeEmpty
Observers
•IsEmpty Observe state
•IsFull
Basic Operations of Queue
Example 1 – Queues using Arrays
Example 2 – Queues using ArrayLists
void enqueue (queue *q, int element);
/* Insert an element in the queue */
int dequeue (queue *q);
/* Remove an element from the queue */
queue *create();
/* Create a new queue */
int isempty (queue *q);
/* Check if queue is empty */
int size (queue *q);
/* Return the no. of elements in queue */
Implementation of Queues
class CQueue {
private int front,rear,counter;
private int [] values;
public CQueue() {
values = new int[10];
front = 0;
rear = -1;
counter = 0;
}
.
.
.
};
Note: In Stacks, there was “top” that serves similar purpose like counter
Implementation of Stacks – using 18
Array
Enqueue class – using Array
front rear
DEQUEUE
front rear
Implementation of Queue
(Using Linked-List)