Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Complete the following array implementation of STACK in C++ to include two other

ID: 3672013 • Letter: C

Question

Complete the following array implementation of STACK in C++ to include two other member functions int peek() and void flush(). Function int peek() returns the top element in the stack without popping this element off the stack. Function void flush() displays the entire stack content, and empties the stack. Do not call empty() and pop() functions in flush(). Function flush() displays an empty line if the stack is empty. class STACK private: int *s; int N; public: STACK(int maxN) { s = new int[maxN]; N = 0; } int empty() const { return N == 0; } void push(int item) { s[N++] = item; } int peek() { /* implement this part */ } int pop() { return s[--N]; } void flush() { /* also implement this part */ } Write a C++ program that creates a stack of integer numbers (for up to 100 numbers), and then it does the following on user’s input (your program must check for conditions: e.g. no pop when the stack is empty): P x : pushes integer x onto the stack R : pops off the stack top and display E : outputs “empty” if stack is empty; otherwise “not empty” K : outputs the stack top integer x using function peek F : outputs the entire content of the stack in last-in first-out order; empties the stack using function flush See below for a sample dialogue. In this assignment, both correctness and efficiency of your programs are important. Example Dialogue (input can be read from a specific file, or can be directed to a file):

Example Dialogue (input can be read from a specific file, or can be directed to a file):

E <ENTER>

empty

P 1

P 10

E <ENTER>

not empty

K

10

P 19

R

19

R

10

E <ENTER>

not empty

P 5

P 20

F

20 5 1

E <ENTER>

empty

R

nothing to pop off; stack is empty

P 2

E <ENTER>

not empty

Explanation / Answer

#include #include #include class IntStack { public: IntStack(int num) { top = 0; maxelem = num; s = new int[maxelem]; } void push(int t) { if (top == maxelem) return; s[top++] = t; } int pop() { if (top == 0) return -1; return s[--top]; } void display() { if (top == 0) { cout push(3); s->display(); s->push(4); s->display(); s->pop(); s->display(); s->pop(); s->display(); s->push(10); s->display(); s->pop(); s->display(); s->pop(); s->display(); s->pop(); s->display(); s->pop(); s->display(); s->pop(); s->display(); }