Define the exception class memoryallocationexception and


PART I

1) Define the exception class MemoryAllocationException and then revise the definition of the method push in the class LinkedStack so that it throws this exception if it cannot allocate a new node.

2) Improve the palindrome-recognition algorithm C++ source code (shown below in blue), by adding the first length / 2 characters to the queue and then pushing the remaining characters onto the stack.

//  Tests whether a given string is a palindrome.

 isPalindrome(someString: string): Boolean

// Create an empty queue and an empty stack

aQueue = a new empty queue

aStack = a new empty stack

// Add each character of the string to both the queue and the stack

length = length of someString

for (i = 1 through length)

{

nextChar = ith character of someString

aQueue.enqueue(nextChar)

aStack.push(nextChar)

}

// Compare the queue characters with the stack characters

charactersAreEqual = true

while (aQueue is not empty and charactersAreEqual)

{

queueFront = aQueue.peekFront()

stackTop = aStack.peek()

if (queueFront equals stackTop)

{

aQueue.dequeue()

aStack.pop()

}

else

charactersAreEqual = false

}

return charactersAreEqual

3) Revise the parameterized constructor (shown below) to call the base-class's constructor instead of MagicBox's constructor.

/** @file MagicBox.h */

#ifndef _MAGIC_BOX

#define _MAGIC_BOX

#include "PlainBox.h"

template

 class MagicBox : public PlainBox

{

private:

bool firstItemStored;

public:

 MagicBox();

MagicBox(const ItemType& theItem);

void setItem(const ItemType& theItem);

}; // end MagicBox

#include "MagicBox.cpp"

 #endif

/** @file MagicBox.cpp */

template

MagicBox::MagicBox()

{

PlainBox();

firstItemStored = false; // Box has no magic initially

} // end default constructor

template

MagicBox::MagicBox(const ItemType& theItem)

{

firstItemStored = false; // Box has no magic initially

setItem(theItem); // Box has magic now

}              // end constructor

template

void MagicBox::setItem(const ItemType& theItem)

{

if (!firstItemStored)

{

PlainBox::setItem(theItem);

firstItemStored = true; // Box now has magic

 } // end if

} // end setItem

Solution Preview :

Prepared by a verified Expert
C/C++ Programming: Define the exception class memoryallocationexception and
Reference No:- TGS01463448

Now Priced at $20 (50% Discount)

Recommended (96%)

Rated (4.8/5)