Lecture - 9 On Queues. Prepared by, Jesmin Akhter, Lecturer, IIT,JU QUEUES A Queue is a linear list of elements in which deletions can take place only.

Slides:



Advertisements
Similar presentations
Data Structures Through C
Advertisements

Data Structures Lecture 13: QUEUES Azhar Maqsood NUST Institute of Information Technology (NIIT)
COSC 1P03 Data Structures and Abstraction 9.1 The Queue Whenever you are asked if you can do a job, tell 'em, "Certainly, I can!" Then get busy and find.
Stacks, Queues, and Deques. 2 A stack is a last in, first out (LIFO) data structure Items are removed from a stack in the reverse order from the way they.
Fundamentals of Python: From First Programs Through Data Structures
DATA STRUCTURE Presented By: Mahmoud Rafeek Alfarra Using C# MINISTRY OF EDUCATION & HIGHER EDUCATION COLLEGE OF SCIENCE AND TECHNOLOGY KHANYOUNIS- PALESTINE.
MSc.It :- Ali Abdul Karem Habib Kufa University / mathematics & Science Of Computer.
1 CSC 211 Data Structures Lecture 22 Dr. Iftikhar Azim Niaz 1.
 Abstract Data Type Abstract Data Type  What is the difference? What is the difference?  Stacks Stacks  Stack operations Stack operations  Parsing.
DATA STRUCTURE & ALGORITHMS
Queue RIZWAN REHMAN CENTRE FOR COMPUTER STUDIES DIBRUGARH UNIVERSITY.
CS 206 Introduction to Computer Science II 10 / 22 / 2008 Instructor: Michael Eckmann.
C o n f i d e n t i a l Developed By Nitendra NextHome Subject Name: Data Structure Using C Unit : Overview of Queues.
Lecture - 1 on Data Structures. Prepared by, Jesmin Akhter, Lecturer, IIT,JU Data Type and Data Structure Data type Set of possible values for variables.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 12 – Data Structures Outline 12.1Introduction.
Stacks, Queues, and Deques
Stacks, Queues, and Deques. A stack is a last in, first out (LIFO) data structure –Items are removed from a stack in the reverse order from the way they.
Stacks, Queues, and Deques
CHAPTER 05 Compiled by: Dr. Mohammad Omar Alhawarat Stacks & Queues.
CHP-4 QUEUE.
CHAPTER 61 STACK, QUEUES, RECURSION. Introduction when one wants to restrict insertion and deletion so that they can take place only at the beginning.
Stacks, Queues & Recursion
Queue 1 Operations on Queues A Dequeue Operation An Enqueue Operation Array Implementation Link list Implementation Examples.
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 18: Stacks and Queues (part 3)
C++ STL CSCI 3110.
Data Structures (part 2). Stacks An Everyday Example Your boss keeps bringing you important items to deal with and keeps saying: “Put that last ‘rush’
A data structure is a type of data storage ….similar to an array. There are many data structures in Java (Stacks, Queues, LinkedList, Sets, Maps, HashTables,
Data Structures Using Java1 Chapter 7 Queues. Data Structures Using Java2 Chapter Objectives Learn about queues Examine various queue operations Learn.
Lecture -3 on Data structures Array. Prepared by, Jesmin Akhter, Lecturer, IIT, JU Array Data structures are classified as either linear or nonlinear.
Queue 09/10/081. Queue (Linear Queue) It is a linear data structure consisting of list of items. In queue, data elements are added at one end, called.
Queue Queue: –Like any other data structure (apart from Array and Linked List), Queue also can be implemented, –Either as an Array or, –As a Linked List.
Lecture - 10 on Data Structures. 6:05:57 PM Prepared by, Jesmin Akhter, Lecturer, IIT,JU.
CHP-4 QUEUE. 1.INTRODUCTION  A queue is a linear list in which elements can be added at one end and elements can be removed only at other end.  That.
UNIVERSAL COLLEGE OF ENGG. AND TECH. 3 RD IT. QUEUE ( data structure)
1 Algorithms Queues, Stacks and Records stored in Linked Lists or Arrays.
Lecture - 11 on Data Structures. Prepared by, Jesmin Akhter, Lecturer, IIT,JU Threaded Trees Binary trees have a lot of wasted space: the leaf nodes each.
Data Structures. Abstract Data Type A collection of related data is known as an abstract data type (ADT) Data Structure = ADT + Collection of functions.
Chapter 7 Queues Introduction Queue applications Implementations.
2005MEE Software Engineering Lecture 7 –Stacks, Queues.
Give Eg:? Queues. Introduction DEFINITION: A Queue is an ordered collection of element in which insertions are made at one end and deletions are made.
Introduction Of Queue. Introduction A queue is a non-primitive linear data structure. It is an homogeneous collection of elements in which new elements.
COSC 2P03 Week 21 Stacks – review A Last-In First-Out (LIFO) structure Basic Operations: –push : insert data item onto top of stack –pop : remove data.
CHP-4 QUEUE Cont…. 7.DEQUE Deque (short form of double-ended queue) is a linear list in which elements can be inserted or deleted at either end but not.
Lecture - 6(Stacks) On Data structures. Prepared by, Jesmin Akhter, Lecturer, IIT,JU Lecture Outline What is a Stack? Array implementation of stacks Operations.
Part 2. Deletion from a linked list Let LIST be a linked list with a node N between nodes A and B. suppose node N is to be deleted from the linked list.
 In general, Queue is line of person waiting for their turn at some service counter like ticket window at cinema hall, at bus stand or at railway station.
DATA STRUCURES II CSC QUIZ 1. What is Data Structure ? 2. Mention the classifications of data structure giving example of each. 3. Briefly explain.
© Oxford University Press All rights reserved. Data Structures Using C, 2e Reema Thareja.
STACKS & QUEUES for CLASS XII ( C++).
Review Array Array Elements Accessing array elements
Data Structures Using C, 2e
Queues.
G.PULLAIAH COLLEGE OF ENGINEERING AND TECHNOLOGY
Data Structure By Amee Trivedi.
Data Structure Interview Question and Answers
Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Algorithm and Data Structure Part II Dr. Naimah Yaakob
Lectures Queues Chapter 8 of textbook 1. Concepts of queue
Stacks and Queues.
QUEUE.
CMSC 341 Lecture 5 Stacks, Queues
Stacks, Queues, and Deques
DATA STRUCTURE QUEUE.
Stacks, Queues, and Deques
STACK, QUEUES, RECURSION
Cs212: Data Structures Computer Science Department Lecture 7: Queues.
CS210- Lecture 5 Jun 9, 2005 Agenda Queues
QUEUE Visit for more Learning Resources Free Powerpoint Templates.
Stacks, Queues, and Deques
CSCS-200 Data Structure and Algorithms
Presentation transcript:

Lecture - 9 On Queues

Prepared by, Jesmin Akhter, Lecturer, IIT,JU QUEUES A Queue is a linear list of elements in which deletions can take place only at one end, called the front, and insertions can take place only at the other end, called the rear. The terms “front” and “rear” are used in describing a linear list only when it implemented as a queue. Queues are also called first-in first-out (FIFO) lists, since the first element in a queue will be the first element out of the queue. In other words, the order in which elements enter a queue is the order in which they leave. This contrasts with stacks, which are Last-in First-out (LIFO) lists.

Prepared by, Jesmin Akhter, Lecturer, IIT,JU Queues abound in everyday life. For example: The automobiles waiting to pass through an intersection form a queue, in which the first car in line is the first car through; the people waiting in line at a bank form a queue, where the first person in line is the first person to be waited on; and so on. An important example of a queue in computer science occurs in a timesharing system, in which programs with the same priority form a queue while waiting to be executed. Queue for printing purposes

Prepared by, Jesmin Akhter, Lecturer, IIT,JU

Basic operations that involved in Queue: Create queue, Create (Q) Identify either queue is empty Add new item in queue Delete item from queue Call first item in queue

Prepared by, Jesmin Akhter, Lecturer, IIT,JU Example : Figure 6-15 (a) is a schematic diagram of a queue with 4 elements, where AAA is the front element and DDD is the rear element. Observe that the front and rear elements of the queue are also, respectively, the first and last elements of the list. Suppose an element is deleted from the queue. Then it must be AAA. This yields the queue in figure 6-15(b), where BBB is now the front element. Next, suppose EEE is added to the queue and then FFF is now the rear element. Now suppose another element is deleted from the queue; then it must be BBB, to yield the queue in fig.6-15(d). And so on. Observe that in such a data structure, EEE will be deleted before FFF because it has been placed in the queue before FFF. However, EEE will have to wait until CCC and DDD are deleted. AAA CCCBBBDDD CCCBBBDDD CCCBBBDDDEEEFFF CCCDDDEEEFFF (a) (d) (b) (c) Fig. 6-15

Prepared by, Jesmin Akhter, Lecturer, IIT,JU REPRESENTATION OF QUEUE Queue may be represented in the computer in various ways, usually by means of one-way lists or linear arrays. Each of our queues will be maintained by a linear array QUEUE and two pointer variables: FRONT, containing the location of the front element of the queue; and REAR, containing the location of the rear element of the queue. The condition FRONT = NULL will indicate that the queue is empty.

Prepared by, Jesmin Akhter, Lecturer, IIT,JU when an element is deleted from the queue, the value of FRONT is increased by 1; this can be implemented by the assignment FRONT := FRONT + 1 Similarly, whenever an element is added to the queue, the value of REAR is increased by 1; this can be implemented by the assignment REAR := REAR + 1 This means that after N insertions, the rear element of the queue will occupy QUEUE[N] or, in other words, eventually the queue will occupy the last part of the array. This occurs even through the queue itself may not contain many elements. REPRESENTATION OF QUEUE

Prepared by, Jesmin Akhter, Lecturer, IIT,JU Suppose we want to insert an element ITEM into a queue at the time the queue does occupy the past part of the array, i.e. when REAR = N. One way to do this is to simply move the entire queue to the beginning of the array, changing FRONT and REAR accordingly, and then inserting ITEM as above. Array QUEUE is circular, that is, that QUEUE[1] comes after QUEUE[N] in the array. With this assumption, we insert ITEM into the queue by assigning ITEM to QUEUE[1]. Specifically, instead of increasing REAR to N+1, we reset REAR=1 and then assign QUEUE[REAR] := ITEM Similarly, if FRONT = N and an element of QUEUE is deleted, we reset FRONT = 1 instead of increasing FRONT to N + 1. Suppose that our queue contains only one element, i.e., suppose that FRONT = REAR = NULL And suppose that the element is deleted. Then we assign FRONT := NULL and REAR := NULL To indicate that the queue is empty. REPRESENTATION OF QUEUE

Prepared by, Jesmin Akhter, Lecturer, IIT,JU REPRESENTATION OF QUEUE FRONT : 1 REAR : 4 FRONT : 2 REAR : 4 FRONT : 2 REAR : 6 FRONT : 3 REAR : 6 Fig : 6.16 Array representation of a queue QUEUE

Prepared by, Jesmin Akhter, Lecturer, IIT,JU Example Figure 6-17 shows how a queue may be maintained by a circular array QUEUE with N = 5 memory locations. Observe that the queue always occupies consecutive locations except when it occupies locations at the beginning and at the end of the array. If the queue is viewed as a circular array, this means that is still occupies consecutive locations. Also, as indicated by fig. 6-17(m), the queue will be empty only when FRONT = REAR and an elements is deleted. For this reason, NULL is assigned to FRONT and REAR in fig (m). (a)Initially empty :FRONT : 0 REAR : QUEUE (b)A, B and then C inserted:FRONT : 1 REAR : 3 (C) A deleted : FRONT : 2 REAR : 3 (d) D and then E inserted :FRONT : 2 REAR : 5 ABC BC BCDE

Prepared by, Jesmin Akhter, Lecturer, IIT,JU Example (e) B and C deleted :FRONT : 4 REAR : 5 DE QUEUE (f) F inserted :FRONT : 4 REAR : 1 (g) D deleted :FRONT : 5 REAR : 1 (h) G and then H inserted :FRONT : 5 REAR : 3 FDE FE FGHE (i) E deleted :FRONT : 1 REAR : 3 (j) F deleted :FRONT : 2 REAR : 3 (k) K inserted :FRONT : 2 REAR : 4 FGH GG GHK

Prepared by, Jesmin Akhter, Lecturer, IIT,JU Example (l) G and H deleted :FRONT : 4 REAR : 5 K QUEUE (m) K deleted, QUEUE is empty :FRONT : 4 REAR : 1 Fig :6.17

Prepared by, Jesmin Akhter, Lecturer, IIT,JU QINSERT QINSERT(QUEUE,N,FRONT,REAR,ITEM) This procedure inserts an element ITEM into a queue. [Queue already fill] 1.If FRONT=1 and REAR=N, or if FRONT=REAR+1, then : Write: Overflow, and Return. 2. [Find new value of REAR] If FRONT=NULL, then :[Queue initially empty] Set FRONT:=1 and REAR:=1 Else if REAR =N then Set REAR:=1 Else Set REAR:=REAR+1 [End of if structure] 3. Set QUEUE[REAR]:=ITEM [This inserts new element] 4. Return.

Prepared by, Jesmin Akhter, Lecturer, IIT,JU QDELETE ITEM.QDELETE(QUEUE,N,FRONT,REAR,ITEM) This procedure deletes an element from the queue and assigns it to the variable [Queue already empty] If FRONT=NULL, then Write: Underflow, and Return. 2.Set ITEM=QUEUE[FRONT] 3.[Find new value of FRONT] If FRONT=REAR, then [Queue has only one element to start] Set FRONT=NULL and REAR=NULL Else if FRONT =N then Set FRONT =1 Else Set FRONT = FRONT +1 [End of if structure] 4.Return

Prepared by, Jesmin Akhter, Lecturer, IIT,JU Deque The mathematical model of a Deque (usually pronounced like "deck") is an irregular acronym (Operation) of double-ended queue. Double-ended queues are a kind of sequence containers. Elements can be efficiently added and removed from any of its ends (either the beginning or the end of the sequence). The model allows data to be entered and withdrawn from the front and rear of the data structure.

Prepared by, Jesmin Akhter, Lecturer, IIT,JU Deques Insertions and deletions can occur at either end but not in the middle Implementation is similar to that for queues Deques are not heavily used You should know what a deque is, but we won’t explore them much further

Prepared by, Jesmin Akhter, Lecturer, IIT,JU Double-Ended-QUE There are two variations of deque –Input-restricted deque An input restricted deque is a deque which allows insertion at only one end of the list but allows deletion a both end of the list. –Output-restricted deque An output restricted deque is a deque which allows deletion at only one end of the list but allows insertin a both end of the list

Prepared by, Jesmin Akhter, Lecturer, IIT,JU Priority Queue A priority queue is a collection of elements such that each element has been assigned a priority, such that the order in which the elements are deleted and processed comes from the following rules : –An element with higher priority will be processed before any element with lower priority. –Two elements with the same priority will be processed in order in which they are add to the queue.

Prepared by, Jesmin Akhter, Lecturer, IIT,JU One way list representation Each node contains three items of information A node X proceeds with a node Y in the list when –X has higher priority than Y or –Both has same priority but X was added in the list before Y. AAA1BBB2CCC3 DDD4EEE5FFF6× Start PRN Property: –First node will processed first