Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

IN C++ ONLY To do: Implement the ListLinked ADT (the declaration is given in ListLinked.h); the following operations: -constructor, assignment operator, destructor (40 points) -insert,

IN C++ ONLY

To do: Implement the ListLinked ADT (the declaration is given in ListLinked.h); the following operations:

-constructor, assignment operator, destructor (40 points)

-insert, remove (40 points)

-replace, clear (10 points)

-isFull, isEmpty (10 points)

-gotoBeginning, gotoEnd, gotoNext, gotoPrior, getCursor (40 points)

-implement the function moveToBeginning() that removes the data item marked by the cursor and reinserts it at the beginning of the list (30 points)

-implement the function insertBefore(..) that will insert the new data item before the cursor or if the list is empty as the first element of the list (30 points)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

//ListLinked.cpp Fill out only this file

#include "ListLinked.h"

// ListNode member functions

template

List::ListNode::ListNode(const DataType& nodeData, ListNode* nextPtr)

{

this->dataItem = nodeData;

this->next = nextPtr;

}

// List member functions

template

List::List(int ignored = 0)

{

}

template

List::List(const List& other)

{

}

template

List& List::operator=(const List& other)

{

}

template

List::~List()

{

}

template

void List::insert(const DataType& newDataItem) throw (logic_error)

{

}

template

void List::remove() throw (logic_error)

{

}

template

void List::replace(const DataType& newDataItem) throw (logic_error)

{

}

template

void List::clear()

{

}

template

bool List::isEmpty() const

{

return false;

}

template

bool List::isFull() const

{

return false;

}

template

void List::gotoBeginning() throw (logic_error)

{

}

template

void List::gotoEnd() throw (logic_error)

{

}

template

bool List::gotoNext() throw (logic_error)

{

return false;

}

template

bool List::gotoPrior() throw (logic_error)

{

return false;

}

template

DataType List::getCursor() const throw (logic_error)

{

DataType t;

return t;

}

template

void List::moveToBeginning () throw (logic_error)

{

}

template

void List::insertBefore(const DataType& newDataItem) throw (logic_error)

{

}

#include "show5.cpp"

//-----------------------------------------------------------------------------------------------------------------------------

//--------------------------------------------------------------------

// show5.cpp: includes implementation of showStructure

//--------------------------------------------------------------------

#include "ListLinked.h"

template

void List::showStructure() const

// Outputs the items in a list. If the list is empty, outputs

// "Empty list". This operation is intended for testing and

// debugging purposes only.

{

if ( isEmpty() )

{

cout << "Empty list" << endl;

}

else

{

for (ListNode* temp = head; temp != 0; temp = temp->next) {

if (temp == cursor) {

cout << "[";

}

// Assumes that dataItem can be printed via << because

// is is either primitive or operator<< is overloaded.

cout << temp->dataItem;

if (temp == cursor) {

cout << "]";

}

cout << " ";

}

cout << endl;

}

}

//----------------------------------------------------------------------------------------------------------------------------------------------

//test.cpp

#include

#include "config.h"

#include "ListLinked.cpp"

using namespace std;

void print_help();

int main()

{

#if LAB5_TEST1

List testList; // Test list

int testData; // List data item

#else

List testList; // Test list

char testData; // List data item

#endif

char cmd; // Input command

print_help();

do

{

testList.showStructure(); // Output list

cout << endl << "Command: "; // Read command

cin >> cmd;

if ( cmd == '+' || cmd == '=' || cmd == '#' )

cin >> testData;

switch ( cmd )

{

case 'H' : case 'h':

print_help();

break;

case '+' : // insert

cout << "Insert " << testData << endl;

testList.insert(testData);

break;

case '-' : // remove

cout << "Remove the data item marked by the cursor"

<< endl;

testList.remove();

break;

case '=' : // replace

cout << "Replace the data item marked by the cursor "

<< "with " << testData << endl;

testList.replace(testData);

break;

case '@' : // getCursor

cout << "Element marked by the cursor is "

<< testList.getCursor() << endl;

break;

case '<' : // gotoBeginning

testList.gotoBeginning();

cout << "Go to the beginning of the list" << endl;

break;

case '>' : // gotoEnd

testList.gotoEnd();

cout << "Go to the end of the list" << endl;

break;

case 'N' : case 'n' : // gotoNext

if ( testList.gotoNext() )

cout << "Go to the next data item" << endl;

else

cout << "Failed -- either at the end of the list "

<< "or the list is empty" << endl;

break;

case 'P' : case 'p' : // gotoPrior

if ( testList.gotoPrior() )

cout << "Go to the prior data item" << endl;

else

cout << "Failed -- either at the beginning of the "

<< "list or the list is empty" << endl;

break;

case 'C' : case 'c' : // clear

cout << "Clear the list" << endl;

testList.clear();

break;

case 'E' : case 'e' : // empty

if ( testList.isEmpty() )

cout << "List is empty" << endl;

else

cout << "List is NOT empty" << endl;

break;

case 'F' : case 'f' : // full

if ( testList.isFull() )

cout << "List is full" << endl;

else

cout << "List is NOT full" << endl;

break;

#if LAB5_TEST2

case 'M' : case 'm' : // In-lab Exercise 2

cout << "Move the data item marked by the cursor to the "

<< "beginning of the list" << endl;

testList.moveToBeginning();

break;

#endif

#if LAB5_TEST3

case '#' : // In-lab Exercise 3

cout << "Insert " << testData << " before the "

<< "cursor" << endl;

testList.insertBefore(testData);

break;

#endif

case 'Q' : case 'q' : // Quit test program

break;

default : // Invalid command

cout << "Inactive or invalid command" << endl;

}

}

while ( cin && cmd != 'Q' && cmd != 'q' );

if( ! cin )

{

// This is useful if students are testing the list with ints, instead of

// chars, and accidentally enter a non-digit char.

cout << "cin read errror" << endl;

}

return 0;

}

void print_help()

{

cout << endl << "Commands:" << endl;

cout << " H : Help (displays this message)" << endl;

cout << " +x : Insert x after the cursor" << endl;

cout << " - : Remove the data item marked by the cursor" << endl;

cout << " =x : Replace the data item marked by the cursor with x"

<< endl;

cout << " @ : Display the data item marked by the cursor" << endl;

cout << " < : Go to the beginning of the list" << endl;

cout << " > : Go to the end of the list" << endl;

cout << " N : Go to the next data item" << endl;

cout << " P : Go to the prior data item" << endl;

cout << " C : Clear the list" << endl;

cout << " E : Empty list?" << endl;

cout << " F : Full list?" << endl;

cout << " M : Move data item marked by cursor to beginning "

<< "(" <<

#if LAB5_TEST2

" Active "

#else

"Inactive "

#endif

<< ": In-lab Ex. 2)" << endl;

cout << " #x : Insert x before the cursor "

<< " (" <<

#if LAB5_TEST3

" Active "

#else

"Inactive "

#endif

<< " : In-lab Ex. 3)" << endl;

cout << " Q : Quit the test program" << endl;

cout << endl;

}

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_2

Step: 3

blur-text-image_3

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

Database Theory And Application Bio Science And Bio Technology International Conferences DTA And BSBT 2011 Held As Part Of The Future Generation In Computer And Information Science 258

Authors: Tai-hoon Kim ,Hojjat Adeli ,Alfredo Cuzzocrea ,Tughrul Arslan ,Yanchun Zhang ,Jianhua Ma ,Kyo-il Chung ,Siti Mariyam ,Xiaofeng Song

2011th Edition

3642271561, 978-3642271564

More Books

Students also viewed these Databases questions

Question

List the different categories of international employees. page 642

Answered: 1 week ago

Question

Explain the legal environments impact on labor relations. page 590

Answered: 1 week ago