08 - DS and Algorithm - Session - 11.pps
08 - DS and Algorithm - Session - 11.pps
Objectives
In this session, you will learn to:
Identify the features of queues
Implement the different types of queues
Apply queues to solve programming problems
Store and search data by using hashing
Ver. 1.0
Session 11
Session 11
REAR
FRONT
Ver. 1.0
Session 11
Answer:
FIFO
Ver. 1.0
Session 11
REAR
FRONT
Ver. 1.0
Session 11
REAR REAR
FRONT
Ver. 1.0
Session 11
FRONT FRONT
Ver. 1.0
REAR
Session 11
Answer:
rear, front
Ver. 1.0
Session 11
Ver. 1.0
Session 11
FRONT = 1
REAR = 1
Ver. 1.0
Session 11
2. Increment REAR by 1.
3. Store the element at index position REAR in the array.
Ver. 1.0
Session 11
FRONT = 1
REAR = 1
Set FRONT = 0.
2.
Increment REAR by 1.
3.
10
0
Ver. 1.0
1.
Session 11
FRONT = 1
REAR = 1
a.
Set FRONT = 0.
2.
Increment REAR by 1.
3.
10
0
Ver. 1.0
Session 11
a.
FRONT = 0
FRONT = 1
REAR = 1
Set FRONT = 0.
2.
Increment REAR by 1.
3.
10
0
Ver. 1.0
Session 11
FRONT = 0
REAR = 1
a.
REAR = 0
Set FRONT = 0.
2.
Increment REAR by 1.
3.
10
0
Ver. 1.0
Session 11
FRONT = 0
REAR = 0
Set FRONT = 0.
2.
Increment REAR by 1.
3.
310
0
Insertion complete
Ver. 1.0
Session 11
FRONT = 0
REAR = 0
Set FRONT = 0.
2.
Increment REAR by 1.
3.
310
0
Ver. 1.0
Session 11
FRONT = 0
REAR = 0
Set FRONT = 0.
2.
Increment REAR by 1.
3.
310
0
Ver. 1.0
Session 11
FRONT = 0
REARREAR
=0 =1
Set FRONT = 0.
2.
Increment REAR by 1.
3.
310
0
Ver. 1.0
Session 11
FRONT = 0
a.
REAR = 1
310
2.
Increment REAR by 1.
3.
Insertion complete
Ver. 1.0
Session 11
FRONT = 0
Ver. 1.0
a.
REAR = 1
310
2.
Increment REAR by 1.
3.
Session 11
FRONT = 0
Ver. 1.0
a.
REAR = 1
310
2.
Increment REAR by 1.
3.
Session 11
FRONT = 0
Ver. 1.0
a.
REAR = REAR
1
=2
310
2.
Increment REAR by 1.
3.
Session 11
FRONT = 0
a.
REAR = 2
310
2.
Increment REAR by 1.
3.
Insertion complete
Ver. 1.0
Session 11
FRONT = 0
Ver. 1.0
10
a.
REAR = 2
310
2.
Increment REAR by 1.
3.
Session 11
FRONT = 0
Ver. 1.0
10
a.
REAR = 2
310
2.
Increment REAR by 1.
3.
Session 11
FRONT = 0
Ver. 1.0
10
a.
REAR = REAR
2
=3
310
2.
Increment REAR by 1.
3.
Session 11
FRONT = 0
10
a.
REAR = 3
310
10
2.
Increment REAR by 1.
3.
Insertion complete
Ver. 1.0
Session 11
FRONT = 0
Ver. 1.0
15
a.
REAR = 3
310
10
2.
Increment REAR by 1.
3.
Session 11
FRONT = 0
Ver. 1.0
15
a.
REAR = 3
310
10
2.
Increment REAR by 1.
3.
Session 11
FRONT = 0
Ver. 1.0
15
a.
REAR =REAR
3
=4
310
10
2.
Increment REAR by 1.
3.
Session 11
15
FRONT = 0
REAR = 4
310
10
15
Set FRONT = 0.
2.
Increment REAR by 1.
3.
Insertion complete
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
1.
2.
Increment FRONT by 1.
Session 11
Ver. 1.0
1.
2.
Increment FRONT by 1.
REAR = 4
10
15
Session 11
FRONT = 0
Ver. 1.0
1.
2.
Increment FRONT by 1.
REAR = 4
310
10
15
Session 11
FRONT = 0FRONT = 1
1.
2.
Increment FRONT by 1.
REAR = 4
10
10
15
Ver. 1.0
Session 11
FRONT = 1
Ver. 1.0
1.
2.
Increment FRONT by 1.
REAR = 4
10
10
15
Session 11
FRONT = 1
Ver. 1.0
1.
2.
Increment FRONT by 1.
REAR = 4
10
10
15
Session 11
FRONT = FRONT
1
=2
10
0
1.
2.
Increment FRONT by 1.
REAR = 4
10
15
Ver. 1.0
Session 11
10
0
REAR = 4
10
15
Session 11
FRONT = 0
Ver. 1.0
REAR = 3
310
10
Session 11
FRONT = 0
Ver. 1.0
REAR = 3
510
10
Session 11
FRONT = 0
Ver. 1.0
REAR = 3
510
10
Session 11
FRONT = 0
Ver. 1.0
REAR = 3
510
10
10
Session 11
FRONT = 0
Ver. 1.0
REAR = 2REAR = 3
510
10
Session 11
FRONT = 0
Ver. 1.0
REAR = 2
510
10
Session 11
FRONT = 3
REAR = 4
Insert 5
510
0
Ver. 1.0
10
15
Session 11
[0]
[4]
[1]
10
REAR = 3
[3]
Ver. 1.0
FRONT = 2
[2]
Session 11
Ver. 1.0
REAR = 3
10
20
23
10
1.
2.
Set FRONT = 0
Set REAR = 0
Go to step 4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
Ver. 1.0
15
REAR = 3
10
20
23
10
2.
Set FRONT = 0
Set REAR = 0
Go to step 4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
Ver. 1.0
15
REAR = 3
10
20
23
10
2.
Set FRONT = 0
Set REAR = 0
Go to step 4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
Ver. 1.0
15
REARREAR
=3 =4
10
20
23
10
2.
Set FRONT = 0
Set REAR = 0
Go to step 4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
15
FRONT = 1
REAR = 4
10
20
23
10
a.
b.
c.
2.
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Insertion complete
Ver. 1.0
Session 11
Ver. 1.0
17
REAR = 4
10
20
23
10
a.
b.
c.
2.
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
Ver. 1.0
17
REAR = 4
10
20
23
10
a.
b.
c.
2.
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
Ver. 1.0
17
REAR = 4
10
20
23
10
a.
b.
c.
2.
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
Ver. 1.0
FRONT = 1
17
REAR = 4
10
20
23
10
a.
b.
c.
2.
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
Ver. 1.0
17
FRONT = 1
a.
b.
c.
2.
10
20
23
10
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
17
FRONT = 1
a.
b.
c.
2.
17
10
20
23
10
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Insertion complete
Ver. 1.0
Session 11
Ver. 1.0
25
FRONT = 1
a.
b.
c.
2.
17
10
20
23
10
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
Ver. 1.0
25
FRONT = 1
a.
b.
c.
2.
17
10
20
23
10
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
Ver. 1.0
25
FRONT = 1
a.
b.
c.
2.
17
10
20
23
10
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Session 11
25
FRONT = 1
a.
b.
c.
2.
17
10
20
23
10
Set FRONT = 0
Set REAR = 0
Go to step 4
15
4
Set REAR = 0
Go to step 4
3.
Increment REAR by 1
4.
Queue[REAR] = element
Before
Inserting
REAR cannot
implementing
an element
be incremented
in
anainsert
full queue
operation,
because
leads
the
you
toqueue
queue
should
isoverflow.
always
full.
check for the
queue full condition.
Ver. 1.0
Session 11
OR
REAR = 4
310
10
Ver. 1.0
If FRONT = REAR + 1
REAR = 2
FRONT = 3
15
17
10
20
23
10
15
Session 11
1.
2.
1.
Set FRONT = 0
Set REAR = 0
Go to Step 5
Ver. 1.0
Set REAR = 0
Go to step 5
2.
Increment REAR by 1
3.
Queue[REAR] = element
Session 11
Ver. 1.0
Session 11
REAR = 1
17
10
0
Ver. 1.0
FRONT = 4
20
1
1.
a.
b.
c.
2.
3.
Set FRONT = 1
Set REAR = 1
Exit
15
2
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
REAR = 1
17
10
0
Ver. 1.0
FRONT = 4
20
1
2.
15
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
REAR = 1
17
10
0
Ver. 1.0
FRONT = 4
20
1
2.
15
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
REAR = 1
17
10
0
Ver. 1.0
FRONT = 4
20
1
2.
15
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
FRONT = 0
17
10
0
Ver. 1.0
REAR = 1
FRONT = 4
20
1
2.
15
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
FRONT = 0
17
10
0
2.
REAR = 1
20
2
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Deletion complete
Ver. 1.0
Session 11
1.
FRONT = 0
17
10
0
Ver. 1.0
2.
REAR = 1
20
2
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
FRONT = 0
17
10
0
Ver. 1.0
2.
REAR = 1
20
2
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
FRONT = 0
17
10
0
Ver. 1.0
2.
REAR = 1
20
2
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
FRONT = 1
FRONT = 0
REAR = 1
17
10
0
2.
20
2
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Deletion complete
Ver. 1.0
Session 11
1.
FRONT = 1
REAR = 1
10
0
Ver. 1.0
2.
20
2
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
FRONT = 1
REAR = 1
10
0
Ver. 1.0
2.
20
2
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
FRONT = 1
REAR = 1
FRONT = 1
10
0
Ver. 1.0
2.
20
2
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
2.
REAR = 1
FRONT = 1
REAR = 1
Ver. 1.0
10
1
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
2.
FRONT = 1
REAR = 1
10
1
3.
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Deletion complete
Ver. 1.0
Session 11
1.
a.
b.
c.
2.
FRONT = 1
REAR = 1
3.
Set FRONT = 1
Set REAR = 1
Exit
10
0
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
1.
2.
3.
4.
Ver. 1.0
Set FRONT = 1
Set REAR = 1
Exit
Set FRONT = 0
Exit
Increment FRONT by 1
Session 11
Answer:
If you implement a queue in the form of a linear array, you can
add elements only in the successive index positions. However,
when you reach the end of the queue, you cannot start
inserting elements from the beginning, even if there is space
for them at the beginning. You can overcome this
disadvantage by implementing a queue in the form of a
circular array. In this case, you can keep inserting elements till
all the index positions are filled. Hence, it solves the problem
of unutilized space.
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
REAR
5
15
Session 11
Ver. 1.0
Session 11
REAR = NULL
FRONT = NULL
1.
2.
3.
4.
Ver. 1.0
5.
6.
Session 11
REAR = NULL
FRONT = NULL
1.
2.
3.
4.
Ver. 1.0
5.
6.
Session 11
REAR = NULL
FRONT = NULL
1.
2.
3.
4.
310
Ver. 1.0
5.
6.
Session 11
REAR = NULL
FRONT = NULL
1.
2.
3.
4.
310
Ver. 1.0
5.
6.
Session 11
REAR = NULL
FRONT = NULL
1.
2.
3.
4.
310
Ver. 1.0
5.
6.
Session 11
REAR = NULL
FRONT = NULL
FRONT
310
Ver. 1.0
1.
2.
3.
4.
5.
6.
Session 11
1.
2.
3.
4.
REAR = NULL
FRONT REAR
310
Ver. 1.0
a.
b.
c.
5.
6.
Session 11
1.
2.
3.
4.
FRONT REAR
310
a.
b.
c.
5.
6.
Ver. 1.0
Session 11
1.
2.
3.
4.
FRONT REAR
310
Ver. 1.0
a.
b.
c.
5.
6.
Session 11
1.
2.
3.
4.
FRONT REAR
310
Ver. 1.0
a.
b.
c.
5.
6.
Session 11
1.
2.
3.
4.
FRONT REAR
310
Ver. 1.0
a.
b.
c.
510
5.
6.
Session 11
1.
2.
3.
4.
FRONT REAR
310
Ver. 1.0
a.
b.
c.
510
5.
6.
Session 11
1.
2.
3.
4.
FRONT REAR
310
Ver. 1.0
a.
b.
c.
510
5.
6.
Session 11
1.
2.
3.
4.
FRONT REAR
310
Ver. 1.0
a.
b.
c.
510
5.
6.
Session 11
FRONT REAR
310
1.
2.
3.
4.
REAR
510
a.
b.
c.
5.
6.
Ver. 1.0
Session 11
Ver. 1.0
Session 11
FRONT
310
Ver. 1.0
REAR
5
1.
2.
3.
4.
10
Session 11
1.
FRONT
310
Ver. 1.0
REAR
5
2.
3.
4.
10
Session 11
1.
FRONT
310
REAR
5
2.
3.
4.
10
current
Ver. 1.0
Session 11
1.
FRONT
310
FRONT
5
REAR
7
2.
3.
4.
10
current
Ver. 1.0
Session 11
1.
FRONT
3
current
REAR
7
2.
3.
4.
10
Memory released
Ver. 1.0
Session 11
Answer:
In a linked list, you can insert and delete elements anywhere in
the list. However, in a linked queue, insertion and deletion
takes place only from the ends. More specifically, insertion
takes place at the rear end and deletion takes place at the
front end of the queue.
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Ver. 1.0
Session 11
Session 11
Ver. 1.0
Session 11