Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I need help with creating code for 'stack by means of an array' I have created the header files to start the cpp file. ArrayStack.h:

I need help with creating code for 'stack by means of an array'

I have created the header files to start the cpp file.

ArrayStack.h:

#include

#include "RuntimeException.h"

#include "StackException.h"

#ifndef ArrayStack_h

#define ArrayStack_h

template

class ArrayStack {

enum { DEF_CAPACITY = 100 }; // default stack capacity

public:

ArrayStack(int cap = DEF_CAPACITY); // constructor from capacity

int size() const; // number of items in the stack

bool empty() const; // is the stack empty?

const E& top() const throw(StackEmpty); // get the top element

void push(const E& e) throw(StackFull); // push element onto stack

void pop() throw(StackEmpty); // pop the stack

// ...housekeeping functions omitted

private: // member data

E* S; // array of stack elements

int capacity; // stack capacity

int t; // index of the top of the stack

};

template ArrayStack::ArrayStack(int cap)

: S(new E[cap]), capacity(cap), t(-1) { } // constructor from capacity

template int ArrayStack::size() const

{ return (t + 1); } // number of items in the stack

template bool ArrayStack::empty() const

{ return (t < 0); } // is the stack empty?

template // return top of stack

const E& ArrayStack::top() const throw(StackEmpty) {

if (empty()) throw StackEmpty("Top of empty stack");

return S[t];

}

template // push element onto the stack

void ArrayStack::push(const E& e) throw(StackFull) {

if (size() == capacity) throw StackFull("Push to full stack");

S[++t] = e;

}

template // pop the stack

void ArrayStack::pop() throw(StackEmpty) {

if (empty()) throw StackEmpty("Pop from empty stack");

--t;

}

#endif /* ArrayStack_h */

StackException.h:

#ifndef StackException_h_

#define StackException_h_

#include "RuntimeException.h"

// Exception thrown on performing top or pop of an empty stack.

class StackEmpty : public RuntimeException {

public:

StackEmpty(const std::string& err) : RuntimeException(err) {}

};

class StackFull : public RuntimeException {

public:

StackFull(const std::string& err) : RuntimeException(err) {}

};

#endif /* StackException_h */

RuntimeException.h:

#ifndef RUNTIMEEXCEPTION_H

#define RUNTIMEEXCEPTION_H

#include

class RuntimeException {

// generic run-time exception private:

std::string errorMsg;

public:

RuntimeException(const std::string& err) { errorMsg = err; }

std::string getMessage() const { return errorMsg; }

};

#endif

I have started the "stack.cpp" with followings:

#include

#include

#include "ArrayStack.h"

#include "LinkedStack.h"

#include "StackException.h"

using namespace std;

int main()

{

return EXIT_SUCCESS;

}

In the main function, I need to create a code for the following:

1) Modify the main() in stack.cpp to declare an ArrayStack of integer type. Execute the interface commands below in order:

a. push(7)

b. push(13);

c. print the top elements

d. pop()

e. push(9)

f. print the top element

g. print the top element

h. pop();

Anyone would like to help me out here? Thank you

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

More Books

Students also viewed these Databases questions

Question

help asp

Answered: 1 week ago

Question

13-1 How does building new systems produce organizational change?

Answered: 1 week ago