Subject – Data Structures and Algorithm Analysis (Language C++) Data Structure: Stack Programming…

Subject – Data Structures and Algorithm Analysis (Language C++)

Data Structure: Stack
Programming Focus: STL Queue

Stack

For this computer assignment, you are to implement the Stack class using STL queues. All relevant files are located within this GitHub repository.

stack.h contains the definition of the Stack class. It is given here to facilitate the following description:

class Stack {
 private:
 std::queue

You are required to implement this class in stack.cc. The main function is already provided in stackmain.cc and does not need to be modified, you can test your program with stack.in and check that it matches stack.out.

In the implementation of the class, you are going to use queues q1 and q2 to store and manipulate data. You are suggested to keep all elements in either one of the queues. More details are described below.

  • empty() You need to make sure both q1 and q2 are empty.

  • size() You need to count the number of elements in both q1 and q2.

  • top() This method returns the newest element. If q1 is not empty, simply return the end element of q1. Otherwise q2 is not empty and simply return the end element of q2.

  • push() Simply add the element to a non-empty queue. If both queues are empty, the new element can be added to an arbitrary queue.

  • pop() This method removes the newest element. Since all elements are in one of the queues, say it is the source, you need to dump all elements except the newest to the other queue. And then remove the last (i.e. the newest) element in the source.

Programming Notes:

Specific tasks, function prototypes, assignment specific components

  • Prepare your Makefile (you need to construct and add Makefile) so that the TA only needs to invoke the command make to compile your source file and produce the executable file stack. Make sure you use exactly the same file names specified here, i.e. stack, in your Makefile, otherwise your submission will get 0 points.

Assignment Notes:

  • Include any necessary headers and add necessary global constants.

  • You are not allowed to use any I/O functions from the C library, such as scanf or printf. Instead, use the I/O functions from the C++ library, such as cin or cout.

Provided Files:

stack.cc

#include “stack.h”

bool Stack::empty() const

{

}

int Stack::size() const

{

}

int Stack::top()

{

}

void Stack::push(const int &val)

{

}

void Stack::pop()

{

}

stackmain.cc

include

#include

#include

#include “stack.h”

int main()

{

Stack s;

std::string op;

int val = 0;

std::cout << “operation — size front end” << std::endl;

std::cin >> op;

while (!std::cin.eof())

{

if (op == “push”)

{

std::cin >> val;

s.push(val);

std::cout << op << ” ” << val << ” — “;

}

else if (op == “pop”)

{

s.pop();

std::cout << op << ” — “;

}

else

{

std::cerr << “Error input: ” << op << std::endl;

return 1;

}

std::cout << std::setw(3) << s.size() << std::setw(5) << s.top() << std::endl;

std::cin >> op;

}

while (!s.empty())

s.pop();

std::cout << “End — size of Stack is: ” << s.size() << std::endl;

return 0;}

stack.in

push1

push2

push3

pop

push4

push5

push6

pop

push7

push8

stack.out

operation — size front end

push 1 — 1 1

push 2 — 2 2

push 3 — 3 3

pop — 2 2

push 4 — 3 4

push 5 — 4 5

push 6 — 5 6

pop — 4 5

push 7 — 5 7

push 8 — 6 8

End — size of Stack is: 0

Calculate the price
Make an order in advance and get the best price
Pages (550 words)
$0.00
*Price with a welcome 15% discount applied.
Pro tip: If you want to save more money and pay the lowest price, you need to set a more extended deadline.
We know how difficult it is to be a student these days. That's why our prices are one of the most affordable on the market, and there are no hidden fees.

Instead, we offer bonuses, discounts, and free services to make your experience outstanding.
How it works
Receive a 100% original paper that will pass Turnitin from a top essay writing service
step 1
Upload your instructions
Fill out the order form and provide paper details. You can even attach screenshots or add additional instructions later. If something is not clear or missing, the writer will contact you for clarification.
Pro service tips
How to get the most out of your experience with MyhomeworkGeeks
One writer throughout the entire course
If you like the writer, you can hire them again. Just copy & paste their ID on the order form ("Preferred Writer's ID" field). This way, your vocabulary will be uniform, and the writer will be aware of your needs.
The same paper from different writers
You can order essay or any other work from two different writers to choose the best one or give another version to a friend. This can be done through the add-on "Same paper from another writer."
Copy of sources used by the writer
Our college essay writers work with ScienceDirect and other databases. They can send you articles or materials used in PDF or through screenshots. Just tick the "Copy of sources" field on the order form.
Testimonials
See why 20k+ students have chosen us as their sole writing assistance provider
Check out the latest reviews and opinions submitted by real customers worldwide and make an informed decision.
11,595
Customer reviews in total
96%
Current satisfaction rate
3 pages
Average paper length
37%
Customers referred by a friend
OUR GIFT TO YOU
15% OFF your first order
Use a coupon FIRST15 and enjoy expert help with any task at the most affordable price.
Claim my 15% OFF Order in Chat
Live ChatWhatsApp

Are You Looking For Assignment Help? We Can Certainly Assist You