queue

7
Page 1 of 7 Prepared By Sumit Kumar Gupta, PGT Computer Science QUEUE A queue is a data structure in which insertion is done at one end and deletion is done from the other end. A queue has two ends. They are:- Front End Rear End Addition of entities is done to the rear terminal position and removal of entities is done from the front terminal position. This makes the queue a First-In-First-Out (FIFO ) data structure. In a FIFO data structure, the first element added to the queue will be the first one to be removed. This is equivalent to the requirement that whenever an element is added, all elements that were added before have to be removed before the new element can be invoked. A queue is an example of a linear data structure. A queue can be represented in two ways:- A. Array Representation of Queue. B. Linked List Representation of Queue. A. ARRAY REPRESENTATION OF QUEUE:- Basic Operations on Queue:- The two basic operations on queue are:- Insert or Enqueue. Delete or Dequeue. 1. Insert Operation on Queue:- In a queue, insert operation takes place at rear end. An “Enqueue” operation adds an item to the “rear” of the queue.

Upload: swarup-boro

Post on 23-Jan-2015

1.844 views

Category:

Education


2 download

DESCRIPTION

This for the students of computer science and for those who want to learn about the concepts

TRANSCRIPT

Page 1: Queue

Page 1 of 7

Prepared By Sumit Kumar Gupta, PGT Computer Science

QUEUE

A queue is a data structure in which insertion is done at one end and deletion is done from the other end.

A queue has two ends. They are:-

Front End Rear End

Addition of entities is done to the rear terminal position and removal of entities is done from the front terminal position. This makes the queue a First-In-First-Out (FIFO) data structure. In a FIFO data structure, the first element added to the queue will be the first one to be removed. This is equivalent to the requirement that whenever an element is added, all elements that were added before have to be removed before the new element can be invoked. A queue is an example of a linear data structure.

A queue can be represented in two ways:-

A. Array Representation of Queue.

B. Linked List Representation of Queue.

A. ARRAY REPRESENTATION OF QUEUE:-

Basic Operations on Queue:-

The two basic operations on queue are:-

Insert or Enqueue.

Delete or Dequeue.

1. Insert Operation on Queue:-

In a queue, insert operation takes place at rear end. An “Enqueue” operation adds an item to the “rear” of the queue.

Page 2: Queue

Page 2 of 7

Prepared By Sumit Kumar Gupta, PGT Computer Science

Steps for inserting an Element in a Queue:-

a. Initialize both the front and rear as -1, which means that the queue is empty.

b. When the first element will be inserted then the rear and front both will be incremented by 1. But for the second element onwards only the rear will be incremented.

c. The value of rear can be maximum up to Max-1, where Max is the maximum number of elements a queue can hold.

d. If the rear reaches Max-1, then display a message that “The queue is full or Queue Overflow”.

Algorithm for Insert Operation:- If rear=MAX Print “Queue is full” Else rear=rear+1 Queue[rear]=value END

2. Delete Operation on Queue:-

In a queue, delete operation takes place at front end. The “Dequeue”operation removes the item at the “front” of the queue and returns it.

Steps for deleting an Element in a Queue:-

a. When an element will be deleted from the queue the value of front will be decremented by 1.

b. The value of front can be minimum up to 0.

c. If the front reaches -1, then display a message that “The queue is empty or Queue Underflow”.

Page 3: Queue

Page 3 of 7

Prepared By Sumit Kumar Gupta, PGT Computer Science

Algorithm for Delete Operation:-

If front=rear

Print “Queue is Empty” and Exit from the Program

Else

front=front+1

value=Queue[front]

END

B. LINKED LIST REPRESENTATION OF QUEUE:-

As we know if we implement the queue in array, sometimes number of memory location remains unused. To overcome this drawback, it is better to implement queue using linked list.

Performing one Dequeue/ Delete Operation:- Here Temp=New node.

Page 4: Queue

Page 4 of 7

Prepared By Sumit Kumar Gupta, PGT Computer Science

Val= Value of the node. Front= First Node of the queue. Rear= Last Node of the queue. Algorithm:- If Front=NULL Print “Queue is empty” Else Temp=Front Front=Front->Next Delete Temp END

Performing one Enqueue/ Insert Operation for inserting an element 3:- Algorithm:-

Temp= new node Read (val) Temp->data=Val Temp->Link=NULL If (Rear=NULL) Rear=Temp Front=Rear Else Rear->Link=Temp Rear=Temp

END Circular Queue:-

Rear of the queue is somewhere clockwise from the front To enqueue an element, we move rear one position clockwise and write the

element in that position

Page 5: Queue

Page 5 of 7

Prepared By Sumit Kumar Gupta, PGT Computer Science

To dequeue, we simply move front one position clockwise Queue migrates in a clockwise direction as we enqueue and dequeue Emptiness and fullness to be checked carefully.

Apple Orange Banana Guava

Front Rear

In the above situation queue overflow will occur though the free spaces are also available since the rear reaches the end. So, queue is full, but still there are two free cells are available in queue. To avoid this problem, the queue can be arranged in a circular way called circular queue.

In a circular queue as soon as the rear reaches the Max value, it should be reset to 1. So, if we have to insert Pineapple in the above queue we can insert it into the first place.

Pineapple Apple Orange Banana Guava Rear Front Algorithm to Insert an element in a Circular Queue:- Note:- Let initially Rear=1 and Front=1.

If (rear+1) Mod Max=Front) Print “Queue is full” Else if Rear=Max Rear=1 Else Rear=Rear+1 End If Queue[Rear]=Val END Algorithm to Delete an element in a Circular Queue:-

Page 6: Queue

Page 6 of 7

Prepared By Sumit Kumar Gupta, PGT Computer Science

Note:- Let initially Rear=1 and Front=1.

If Front=Rear Print “Queue is empty” Else if Front=Max Front=1 Else Front=Front+1 End if Val=Queue[Front] END

QUESTION BANK

1. What does ‘front’ signify in a queue? Ans: Removal of elements from a queue is done through the front terminal. 2. What does ‘rear’ signify in a queue? If in a queue, the ‘rear’ points to the ‘front’,

what is the queue called? Ans: Insertion of element in a queue is done in the ‘rear’ end. If in a queue, the rear points to the front, then the queue is considered to be empty. 3. What is the full form of a dequeue? Ans: It is Double-ended queue. 4. What is the dequeue called that allows insertion at only one end but deletion at

both the ends of the list? What is the dequeue called that allows deletion at only one end but insertion at both the ends of the list?

Ans: i. Input restricted dequeue. ii. Output restricted dequeue. 5. Consider the following circular queue, where CQUEUE is allocated N=6 memory

cells: CQUEUE: AAA, DDD, EEE, FFF, GGG, __________ Describe the queue as the following operation take place: (a) Insert (CQUEUE, KKK) (b) POP (CQUEUE, ITEM) (c) Insert (CQUEUE, LLL) (d) Insert (CQUEUE, SSS) (e) POP (CQUEUE, ITEM) (f) Insert (CQUEUE, TTT)

Ans: (a) AAA, DDD, EEE, FFF, GGG, KKK

Page 7: Queue

Page 7 of 7

Prepared By Sumit Kumar Gupta, PGT Computer Science

(b) DDD, EEE, FFF, GGG, KKK (c) DDD, EEE, FFF, GGG, KKK, LLL (d) Queue Overflow. (e) EEE, FFF, GGG, KKK, LLL (f) EEE, FFF, GGG, KKK, LLL, TTT.

6. Differentiate between a linear queue and a Circular queue. Ans: Linear Queue Circular Queue 1. A linear queue models the FIFO (first 1. The circular queue if the rear pointer In first out) data structure, much like reaches the maximum size of the a line in real life. Queue, then it is shifted to the first

position. 2. Linear queues require much less 2. Circular queues provide much more programming logic. flexibility than a linear queue 7. Differentiate between a queue and a dequeue. Ans:

Queue Dequeue 1. In a queue insertion takes place at rear 1. In a dequeue the elements can be end and deletion at front end only. added and removed at either end but not in the middle.