Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

NOTE: Below is the code for the Queue class (because it uses the Node class, I've also put the code for Node there). NOTE: The

image text in transcribed

NOTE: Below is the code for the Queue class (because it uses the Node class, I've also put the code for Node there).

NOTE: The data type for project 1 is referring to a class I created called Combine. In this class, I wrote code that takes a text file containing information on different football players and their combine results and stores those players as a vector of objects of the class.

Queue.h:

#ifndef NODEB_QUEUE_H #define NODEB_QUEUE_H /*  * Queue class  * Functionality: push, pop, peek, isEmpty, print  */  #include "Node.h" #include  using namespace std; templatetypename Object> class Queue { private: // Store the address of the top Node in the Queue  Node* top; Node* down; public: // Constructor  Queue() { // Queue is empty. Top doesn't point at anything.  top = nullptr; down = nullptr; } // Deconstructor / Destructor  ~Queue() { // Pop all the Nodes left in the Queue  while (!isEmpty()) { pop(); } } bool isEmpty() const { return (top== nullptr); } void push(Object item) { if (isEmpty()) { // This is the first Node in the Queue  // Allocate memory in the heap to store the new Node  Node* newNode = new Node(item); // Update top  top = newNode; down=top; } else { // There is already at least one Node in the Queue  Node* newNode = new Node(item); // Update down  down->setNext(newNode) down = newNode; } } Object pop() { if (isEmpty()) { // There is no Node to pop. Return the default Object.  // Note: This assumes the Object has a default constructor.  return Object(); } else { // There is at least one Node in the Queue.  // Store a copy of the Object to be returned  Object copy = top->getItem(); // Store a copy of top  Node* topCopy = top; // Update top to point at whatever the Node we are about to delete is pointing at  top = top->getNext(); // Delete the Node from heap memory  // Use the delete keyword with a pointer to the memory you want to deallocate from the heap  delete topCopy; // Return the Object  return copy; } } bool exists(Object item) const { Node* curr = top; while (curr != nullptr) { // Note: This assumes the Object can use the == operator  if (curr->getItem() == item) { // Found the item in the Stack  return true; } curr = curr->getNext(); } // Did not find the item in the Stack  return false; } void printQueue() const { Node* curr = top; while (curr != nullptr) { // Note: This assumes that the Object can use the  cout getItem() getNext(); } } }; #endif //NODEB_QUEUE_H 

Node.h:

#ifndef NODEB_NODE_H #define NODEB_NODE_H /** Represents one node to be used in a linked list  Contains data (object) and reference to next in list */  templatetypename Object> class Node { private: Object item; Node* next; public: Node(Object newItem) { item = newItem; next = nullptr; } Node(Object newItem, Node* nextNode) { item = newItem; next = nextNode; } void setItem(Object newItem) { item = newItem; } Object getItem() const { return item; } void setNext(Node* nextNode) { next = nextNode; } Node* getNext() const { return next; } }; #endif //NODEB_NODE_H
Main function Create three Queue objects: one of integers, one of strings, and one of a custom data type (ideally the type you created in Project 1). Demonstrate that the Queue methods work correctly by calling methods on the objects and printing out to the console when appropriate. Perform the following operations: Create a Queue object and a Stack object, both of the type you created in Project 1. Print and push the first 10 objects from your vector (from Project 1) onto the Queue. . Pop the 10 objects off the Queue and push them onto the Stack. Pop and print the 10 objects off the Stack. What is the order of the objects before and after adding them to the Queue and Stack? When and why did it change? Main function Create three Queue objects: one of integers, one of strings, and one of a custom data type (ideally the type you created in Project 1). Demonstrate that the Queue methods work correctly by calling methods on the objects and printing out to the console when appropriate. Perform the following operations: Create a Queue object and a Stack object, both of the type you created in Project 1. Print and push the first 10 objects from your vector (from Project 1) onto the Queue. . Pop the 10 objects off the Queue and push them onto the Stack. Pop and print the 10 objects off the Stack. What is the order of the objects before and after adding them to the Queue and Stack? When and why did it change

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Machine Performance Modeling Methodologies And Evaluation Strategies Lncs 257

Authors: Francesca Cesarini ,Silvio Salza

1st Edition

3540179429, 978-3540179429

More Books

Students also viewed these Databases questions

Question

4. Choose appropriate and powerful language

Answered: 1 week ago

Question

2. Choose an appropriate organizational pattern for your speech

Answered: 1 week ago