erations. (a) A default constructor that creates an empty queue. (b) A method size () that returns the number of elements in the queue (c) A method empty() that returns true if the queue is empty. (d) A method push (e) that adds a copy of elemente to the back of the queue. (e) A method pop () that removes the front element of the queue. A copy of that element is also returned. The easiest way to implement this class is to use an STL list to store the elements of the queue. But for the purposes of this assignment, you ar not allowed to do that. Instead, you have to directly use a singly-linked list that is, a linked list in which each node has only one pointer. Implement the Queue operations as efficiently as possible. Most opera tions can be implemented to run in constant time.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

C++

A queue is essentially a waiting list. It’s a sequence of elements with a front and a back. Elements can only be added to the back of the queue and they can only be removed from the front of the queue. Elements are kept in order so that the first element to enter the queue is the first one to leave it.

### Implementing a Generic Queue Class

In this exercise, you will learn how to create a generic class of queues named `Queue`. Your class should include the following operations:

1. **Constructor**
   - **Default Constructor:** A constructor that creates an empty queue.
   
2. **Methods**
   - **size():** This method returns the number of elements in the queue.
   - **empty():** This method returns `true` if the queue is empty.
   - **push(e):** This method adds a copy of element `e` to the back of the queue.
   - **pop():** This method removes the front element of the queue and returns a copy of that element.

#### Implementation Details

Although the easiest way to implement the `Queue` class is using an STL `list` to store the elements of the queue, for this assignment, **you are not allowed to do that**. Instead, you need to implement it using a singly-linked list, which means each node in the linked list has only one pointer.

#### Goals

- Implement the `Queue` operations as efficiently as possible, with most of the operations ideally running in constant time.
- Split your class into a header and an implementation file.
- Submit your test driver along with the implementation.

### Breakdown of Required Methods

- **size():** Counts and returns the number of elements in the queue.
- **empty():** Checks if the queue has no elements and returns a Boolean value.
- **push(e):** Places a copy of `e` at the end of the queue.
- **pop():** Removes and returns a copy of the element at the front of the queue.

By completing this task, you will gain hands-on experience with linked lists and understand the internal workings of queue data structures. Make sure to follow the guidelines closely for the best practice in object-oriented programming and data structure implementation.
Transcribed Image Text:### Implementing a Generic Queue Class In this exercise, you will learn how to create a generic class of queues named `Queue`. Your class should include the following operations: 1. **Constructor** - **Default Constructor:** A constructor that creates an empty queue. 2. **Methods** - **size():** This method returns the number of elements in the queue. - **empty():** This method returns `true` if the queue is empty. - **push(e):** This method adds a copy of element `e` to the back of the queue. - **pop():** This method removes the front element of the queue and returns a copy of that element. #### Implementation Details Although the easiest way to implement the `Queue` class is using an STL `list` to store the elements of the queue, for this assignment, **you are not allowed to do that**. Instead, you need to implement it using a singly-linked list, which means each node in the linked list has only one pointer. #### Goals - Implement the `Queue` operations as efficiently as possible, with most of the operations ideally running in constant time. - Split your class into a header and an implementation file. - Submit your test driver along with the implementation. ### Breakdown of Required Methods - **size():** Counts and returns the number of elements in the queue. - **empty():** Checks if the queue has no elements and returns a Boolean value. - **push(e):** Places a copy of `e` at the end of the queue. - **pop():** Removes and returns a copy of the element at the front of the queue. By completing this task, you will gain hands-on experience with linked lists and understand the internal workings of queue data structures. Make sure to follow the guidelines closely for the best practice in object-oriented programming and data structure implementation.
Expert Solution
steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Stack
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education