CE 221 Data Structures and Algorithms

Slides:



Advertisements
Similar presentations
1 Array-based Implementation An array Q of maximum size N Need to keep track the front and rear of the queue: f: index of the front object r: index immediately.
Advertisements

Ceng-112 Data Structures I Chapter 5 Queues.
Data Structures Lecture 13: QUEUES Azhar Maqsood NUST Institute of Information Technology (NIIT)
Queues A waiting line that grows by adding elements to its end and shrinks by taking elements from its front Line at the grocery store Cars in traffic.
Queues1 Part-B2 Queues. Queues2 The Queue ADT (§4.3) The Queue ADT stores arbitrary objects Insertions and deletions follow the first-in first-out scheme.
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.
ADVANCED DATA STRUCTURES AND ALGORITHM ANALYSIS Chapter 3 Lists, Stacks, and Queues.
1 Queues – Chapter 3 A queue is a data structure in which all additions are made at one end called the rear of the queue and all deletions are made from.
Queues CS-212 Dick Steflik. Queues First In, First Out operation – FIFO As items are added they are chronologically ordered, items are removed in their.
1 Queues (5.2) CSE 2011 Winter May Announcements York Programming Contest Link also available from.
STACKS AND QUEUES. A LINKED LIST IMPLEMENTATION OF A QUEUE data next data next NULL data next cnt front rear queue node Queue: First-In-First-Out (FIFO)
Queue Overview Queue ADT Basic operations of queue
Queues. What is a queue? First-in first-out data structure (FIFO) New objects are placed at rear Removal restricted to front Examples?
Queues.
Queues. … frontrear dequeueenqueue Message queues in an operating system There are times that programs need to communicate with each other.
CSE 373 Data Structures and Algorithms Lecture 2: Queues.
CS 1031 Queues Definition of a Queue Examples of Queues Design of a Queue Class Different Implementations of the Queue Class.
Data Structures and Algorithm Analysis Lecturer: Jing Liu Homepage:
TK1924 Program Design & Problem Solving Session 2011/2012 L6: Queues.
Stack Overview. Stack Stack ADT Basic operations of stack – Pushing, popping etc. Implementations of stacks using – array – linked list.
CE 221 Data Structures and Algorithms
CSE 373: Data Structures and Algorithms Lecture 2: Queues.
Copyright © Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Java From Control Structures through Data Structures by Tony.
1 Data Structures CSCI 132, Spring 2014 Lecture 7 Queues.
Queues Manolis Koubarakis Data Structures and Programming Techniques 1.
 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.
© Oxford University Press All rights reserved. Data Structures Using C, 2e Reema Thareja.
Queues By Jimmy M. Lu. Overview Definition Standard Java Queue Operations Implementation Queue at Work References.
Review Array Array Elements Accessing array elements
Unit-3 Queues-operations, array and linked representations. Circular Queue operations, Dequeues, applications of queue.
Data Structures Using C, 2e
Queues.
CS505 Data Structures and Algorithms
Queue ADT (Abstract Data Type) N …
CE 221 Data Structures and Algorithms
CSE 373: Data Structures and Algorithms
Lectures Queues Chapter 8 of textbook 1. Concepts of queue
Stacks and Queues.
Queues Queues Queues.
Algorithm and Data Structure Part III Dr. Naimah Yaakob
CSCE 3110 Data Structures & Algorithm Analysis
CMSC 341 Lecture 5 Stacks, Queues
Queues 11/9/2018 6:28 PM Queues 11/9/2018 6:28 PM Queues.
Queues 11/16/2018 4:18 AM Queues 11/16/2018 4:18 AM Queues.
Queues 11/16/2018 4:19 AM Queues 11/16/2018 4:19 AM Queues.
Queues.
Queues 11/22/2018 6:47 AM 5.2 Queues Queues Dr Zeinab Eid.
Revised based on textbook author’s notes.
CSC 143 Queues [Chapter 7].
Queues 12/3/2018 Queues © 2014 Goodrich, Tamassia, Goldwasser Queues.
Queues 3/9/15 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser,
Queues 12/30/2018 9:24 PM Queues 12/30/2018 9:24 PM Queues.
Stacks and Queues CSE 373 Data Structures.
CE 221 Data Structures and Algorithms
Cs212: Data Structures Computer Science Department Lecture 7: Queues.
CS210- Lecture 5 Jun 9, 2005 Agenda Queues
Stacks and Queues CSE 373 Data Structures.
CSE 373 Data Structures Lecture 6
Queues Jyh-Shing Roger Jang (張智星)
ADT Queue (Array Implementation)
QUEUE Visit for more Learning Resources Free Powerpoint Templates.
Visit for more Learning Resources
Stacks and Queues CSE 373 Data Structures.
Using a Queue Chapter 8 introduces the queue data type.
Using a Queue Chapter 8 introduces the queue data type.
17CS1102 DATA STRUCTURES © 2016 KL University – The contents of this presentation are an intellectual and copyrighted property of KL University. ALL RIGHTS.
Queues Definition of a Queue Examples of Queues
CSE 373 Data Structures Lecture 6
Getting queues right … finally (?)
DATA STRUCTURES IN PYTHON
Presentation transcript:

CE 221 Data Structures and Algorithms Chapter 3: Lists, Stacks, and Queues - III Text: Read Weiss, §3.7 Izmir University of Economics

Izmir University of Economics The Queue ADT Like stacks, queues are lists. With a queue, however, insertion is done at one end, whereas deletion is performed at the other end. The basic operations on a queue (FIFO list) are enqueue, which inserts an element at the end of the list (called the rear), and dequeue, which deletes (and returns) the element at the start of the list (known as the front). Izmir University of Economics

Array Implementation of Queues - I As with stacks, both array and linked list (trivial) implementations give O(1) running times. Let’s discuss circular array implementation. An array to store elements, Array, and the positions Front and Rear to represent the ends of the queue are kept. We also keep track of the number of elements: Size. Izmir University of Economics

Array Implementation of Queues – Problem 5 2 7 1 Front Rear To enqueue an element X, increment Size and Rear and set Array[Rear]=X To dequeue an element, set the return value to Array[Front], decrement Size and then increment Front. Assume after several enqueue operations, the Rear is at the last index position. Assume also that some elements, in the meantime, have been dequeued to make up room. The next enqueue would fail, although there would be free slots. Izmir University of Economics

Array Implementation of Queues – Problem Solved The simple solution is whenever Front or Rear gets to the end of the Array, it is wrapped around to the beginning (hence the name circular array). initially 2 4 Front Rear After enqueue(1) 1 2 4 Front Rear After enqueue(3) 1 3 2 4 Front Rear Izmir University of Economics

Array Implementation of Queues – Example After dequeue  2 1 3 2 4 Front Rear After dequeue  4 1 3 2 4 Front Rear After dequeue  1 1 3 2 4 Front Rear After dequeue  3 and queue is empty 1 3 2 4 Front Rear If Size is not kept, queue is empty when Rear=Front-1. In that case, queue is full when there are Capacity-1 items. Why? Only Capacity different sizes can be differentiated and one of these is 0. Izmir University of Economics

Circular Array Implementation of Queues – Sample Code I public class SingleQueueArray<AnyType> { private int front; // points at the frontmost element private int rear; // points at the next vacant! position private int maxSize; // capacity of the underlying ArrayList private ArrayList<AnyType> elements; SingleQueueArray() { this(101); // actually holds one less than given size } SingleQueueArray(int s) { maxSize = s; front = 0; rear = 0; elements = new ArrayList<AnyType>(maxSize); boolean empty() { return front == rear; boolean full() { return (rear + 1) % maxSize == front; Izmir University of Economics

Circular Array Implementation of Queues – Sample Code II void enqueue(AnyType x) { if ( !full() ) { if (elements.size()<maxSize) //add until cells filled elements.add(x); else elements.set(rear, x); // set afterwards rear = (rear + 1) % maxSize; } AnyType dequeue() { AnyType temp=null; if ( !empty() ) { temp = elements.get(front); front = (front+1) % maxSize; return temp; Izmir University of Economics

Applications of Queues - I When jobs are submitted to a printer, they are arranged in order of arrival. Virtually every real-life line is (supposed to be) a queue. Users on other machines are given access to a file server on a first-come first-served basis. Calls to large companies are generally placed on a queue when all operators are busy. Izmir University of Economics

Applications of Queues - II A whole branch of mathematics, known as queueing theory, deals with computing, probabilistically, how long users expect to wait on a line, how long the line gets, and other such questions. The answer depends on how frequently users arrive to the line and how long it takes to process a user once the user is served. Both of these parameters are given as probability distribution functions. Izmir University of Economics

Izmir University of Economics Homework Assignments 3.35 You are requested to study and solve the exercises. Note that these are for you to practice only. You are not to deliver the results to me. Izmir University of Economics