Complete the following array implementation of STACK in C++ to include two other
ID: 3672025 • 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):
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
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 */
for(i=N-1;i>=0;i++){
cout<<"P"<<s[i];
}
}
int pop()
{ return s[--N]; }
void flush()
{
/* also implement this part */
if(N==0){
cout<<"P"<<pop();
cout<<"nothing to pop off; stack is empty";
}else{
cout<<"P"<<pop();
flush();
}
}
};
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.