0% found this document useful (0 votes)
4 views

Chapter 3 Queue Data Structure Using Array (2)

The document provides an overview of the queue data structure, highlighting its specifications, properties, and methods implemented using arrays. It explains the First-In-First-Out (FIFO) nature of queues and discusses two design options for holding queue elements: fixed-front and floating-front designs. Additionally, it includes exercises for implementing specific methods in a queue class.

Uploaded by

shaimaaabudayyeh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Chapter 3 Queue Data Structure Using Array (2)

The document provides an overview of the queue data structure, highlighting its specifications, properties, and methods implemented using arrays. It explains the First-In-First-Out (FIFO) nature of queues and discusses two design options for holding queue elements: fixed-front and floating-front designs. Additionally, it includes exercises for implementing specific methods in a queue class.

Uploaded by

shaimaaabudayyeh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 12

Faculty of Information Technology - Computer Science Department 1

Data Structures

Faculty of Information Technology - Computer Science Department 2


Chapter 3
Queue Data Structure using Array

Faculty of Information Technology - Computer Science Department 3


Outline

 Queue Specifications Structure


 Queue Methods Using Array
 Methods Implementation

Faculty of Information Technology - Computer Science Department 4


Queue Specifications Structure

• A queue is an ordered list (According to the arrival time) where insertions are made at
one end (the rear) and deletions are made at the other end (the front).

• Front (head): the first (oldest) entry in the queue.

• Rear (tail): the last entry in the queue. That is the most recent entry.

Front of Queue Rare of Queue

Faculty of Information Technology - Computer Science Department 5


Queue Property

A Queue is a First-In-First-Out (FIFO) data structure:


 The first item inserted into a queue is the first to be served (serving implies removing
the item from the queue).
 A queue is a dynamic object: It expands and shrinks with each insertion (append) and
deletion (serve).

Faculty of Information Technology - Computer Science Department 6


ADT Definition for Queue

1. Objects:
 A finite ordered list with zero or more elements.
 front (head) indicator indicates the first (oldest) entry in the queue.
 rear (tail) indicator indicates the last (most recent) entry in the queue.
2. Methods (operations) implemented using Array:
 isEmpty(): Check if the queue is empty.
 isFull(): Check if the queue is full.
 enqueue(): Add (store) an item to the queue.
 dequeue(): Remove (access) an item from the queue.
 length(): Retrieve the number of elements in the queue.
 first(): Returns the element at the front of the queue but does not remove
it.
Faculty of Information Technology - Computer Science Department 7
How to Hold Queue Elements?

•We have two design options for how to hold the queue elements in the array:
 Fixed front design: The front indicator of the queue is fixed while the
rare
indicator changes.

 Floating front design: Both front and rear indicators change and the array
is treated as a circular structure.

Faculty of Information Technology - Computer Science Department 8


Fixed-Front Design
•In this approach, the front of the queue is
fixed and always in index 0. Only the rear
is changed.
•Assume we call enqueue( ) with
arguments ‘A’, ‘B’, ‘C’, and ‘D’ as
shown in the first queue. front =0, rear =
3.
•When we call dequeue( ) to remove the
front element we need to move every
element in the queue up one slot (Shift)
•This dequeue operation is inefficient, so Source: textbook

we do not use this approach.


Faculty of Information Technology - Computer Science Department 9
Floating-Front Design

 This approach allows both the front and the


rear to move.
 For a dequeue(), we remove the element at
the front and adjust the location of the front.
 No movement of elements is required.
 We have to keep track of the array indexes of
both the front and the rear of the queue.

Faculty of Information Technology - Computer Science Department 10


Methods Implementation

11
Faculty of Information Technology - Computer Science Department
Exercises

1. For the 𝑄𝑢𝑒𝑢𝑒𝐴𝑟𝑟 class, add the implementation of both methods


𝑙𝑒𝑛𝑔𝑡ℎ() and
𝑓𝑖𝑟𝑠𝑡().

𝑄𝑢𝑒𝑢𝑒𝐴𝑟𝑟
2. In the main class (𝑄𝑢𝑒𝑢𝑒𝐴𝑟𝑟𝐷𝑒𝑚𝑜), create a queue object using

class and test all its methods.

12
Faculty of Information Technology - Computer Science Department

You might also like