Answered Essay: Ok so I need these following exercises completed in C++. The code that

Ok so I need these following exercises completed in C++. The code that goes with them will follow after the exercises.

The code is after two lines. In all needs to be completed in C++. Also each individual program will be separated by Asteriks(************)

Exercise 2: Implementing a Doubly Linked List

Modify the class Linked List in Exercise 1 to make it a Doubly Linked List. Name your class DoublyLinkedList. Add a method addEnd to add an integer at the end of the list and a method displayInReverse to print the list backwards.

void addEnd(int x): create this method to add x to the end of the list.

void displayInReverse(): create this method to display the list elements from the last item to the first one.

Create a main() function to test your DoublyLinkedList class.

Exercise 3: Implementing a Bag Class With a Linked List

Create a class Bag that uses a linked list to store the bag items. The item type must be char. The class should have the methods listed below. Create a main() that will store in a bag object a fixed number of characters entered by the program user. After the input is completed, the program should modify the bag content so that it does not contain any duplicate characters, if duplicates were entered. For example, if the user entered ‘M’ ‘I’ ‘S’ ‘S’ ‘I’ ‘S’ ‘S’ ‘I’ ‘P’ ‘P’ ‘I’, the characters remaining in the bag after the removal of duplicates would be ‘M’ ‘I’ ‘S’ ‘P’.

Bag(): default constructor

~Bag(): class destructor

bool isEmpty(): determines whether the bag is empty

void print(): prints the bag elements

int getSize(): returns the number of items in the bag

void clear(): removes all of the items from the bag

void add(char item): adds an item to the bag

void remove(char item): removes an item from the bag; only one occurrence of the item should be removed.

int count(char item): counts the number of occurrences of an item in the bag.

(Note that you can reuse the code in Exercise 1 for the LinkedList class to create your Bag class. It will help you to save development time.)

Exercise 4: Using the C++ STL List

Write a program that fills a STL list object with 10 random integers, each in the interval [0, 20], and prints how many times each integer in the interval [0, 20] appears in the list.

____________________________________________________________________________________________________________________________________________________________________________________________

main.cpp for list container

/*******************************

* Week 2 lesson: *

* using the list container *

*******************************/

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> numbers;

for (int i=0; i<10; i++)

numbers.push_back(rand()%100);

while(!numbers.empty())

{

int x = numbers.front();

cout << x << ” “;

numbers.pop_front();

}

cout << endl;

return 0;

}

*******************************************************************************

Main.cpp(linkedlists)

/*******************************

* Week 2 lesson: *

* a simple LinkedList class *

*******************************/

#include <iostream>

#include “LinkedList.h”

using namespace std;

int main()

{

LinkedList myList;

int x;

//Add 5 random numbers to list

for (int i=0; i < 5; i++)

myList.add(rand()%20);

cout << “1 – Display the list elements” << endl;

cout << “2 – Is it empty?” << endl;

cout << “3 – Add element” << endl;

cout << “4 – Delete element” << endl;

cout << “5 – Exit” << endl;

int option;

//Loop to test the LinkedList class methods

do

{

cout << endl << “Enter your choice: “;

cin >> option;

switch(option)

{

case 1:

cout << “List elements: “;

myList.display();

break;

case 2:

if (myList.isEmpty()) cout << “List is empty”<< endl;

else cout << “List is not empty” << endl;

break;

case 3:

cout << “Enter an element to add at the beginning of the list: “;

cin >> x;

myList.add(x);

break;

case 4:

cout << “Enter an element to delete from the list: “;

cin >> x;

myList.remove(x);

break;

case 5:

cout << “All done!” << endl;

break;

default: cout << “Invalid choice!” << endl;

}

} while (option != 5);

return 0;

}

Linkedlist .h file

/*******************************

* Week 2 lesson: *

* a simple LinkedList class *

*******************************/

/*

* Linked list node.

*/

struct Node

{

int info; //element stored in this node

Node *next; //link to next node

};

/*

* Class implementing a linked list.

*/

class LinkedList

{

public:

LinkedList();

~LinkedList();

bool isEmpty();

void display();

void add(int);

void remove(int);

private:

Node *first; //pointer to header (dummy) node

};

Linkedlist.cpp

/*******************************

* Week 2 lesson: *

* a simple LinkedList class *

*******************************/

#include <iostream>

#include “LinkedList.h”

using namespace std;

/*

* Initializes the list to empty creating a dummy header node.

*/

LinkedList::LinkedList()

{

first = new Node;

first->next = NULL;

}

/*

* Destructor. Deallocates all the nodes of the linked list,

* including the header node.

*/

LinkedList::~LinkedList()

{

Node *temp;

while (first != NULL)

{

temp=first;

first=first->next;

delete temp;

}

}

/*

* Determines whether the list is empty.

*

* Returns true if the list is empty, false otherwise.

*/

bool LinkedList::isEmpty()

{

return first->next == NULL;

}

/*

* Prints the list elements.

*/

void LinkedList::display()

{

Node * current = first->next;

while(current != NULL)

{

cout << current->info << ” “;

current = current->next;

}

cout << endl;

}

/*

* Adds the element x to the beginning of the list.

*

* x: element to be added to the list.

*/

void LinkedList::add(int x)

{

Node *p = new Node;

p->info = x;

p->next = first->next;

first->next = p;

}

/*

* Removes the first occurrence of x from the list. If x is not found,

* the list remains unchanged.

*

* x: element to be removed from the list.

*/

void LinkedList::remove(int x)

{

Node * old = first->next,

* p = first;

//Finding the address of the node before the one to be deleted

bool found = false;

while (old != NULL && !found)

{

if (old->info == x) found = true;

else

{

p = old;

old = p->next;

}

}

//if x is in the list, remove it.

if (found)

{

p->next = old->next;

delete old;

}

}

**********************************************************************************************

main.cpp for iterators

/*******************************

* Week 2 lesson: *

* using iterators *

*******************************/

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> numbers;

for (int i=0; i<10; i++)

numbers.push_back(rand()%100);

list<int>::iterator it;

for (it = numbers.begin(); it!=numbers.end(); ++it)

{

cout << *it << ” “;

}

cout << endl;

return 0;

}

Expert Answer

 

// exercise 2

#include <iostream>

using namespace std;

struct Node

{

int info; //element stored in this node

Node *next;

Node *prev;//link to next node

};

class DoublyLinkedList

{

public:

DoublyLinkedList();

void addEnd(int x);

void displayInReverse();

private:

Node *last; //pointer to header (dummy) node

};

DoublyLinkedList::DoublyLinkedList()

{

last = new Node;

last->next = NULL;

last->prev= NULL;

}

////// addEnd function

void DoublyLinkedList::addEnd(int x)

{

Node *p= new Node;

p->info = x;

p->prev = NULL;

if(last->prev != NULL)

{

p->prev = last->prev;

last->prev->next = p;

}

last->prev = p;

p->next = last;

}

// Display Inverse function

void DoublyLinkedList::displayInReverse()

{

Node *p = last;

while(p->prev != NULL)

{

p=p->prev;

cout<<p->info<<” “;

}

cout<<endl;

}

int main()

{

DoublyLinkedList D;

D.addEnd(5);

D.addEnd(6);

D.addEnd(7);

D.displayInReverse();

return 0;

}

// exercise 3

#include <iostream>

using namespace std;

struct Node

{

char info; //element stored in this node

Node *next;

};

class Bag

{

public:

Bag();

~Bag();

bool isEmpty();

void display();

void add(char);

void remove(char);

void modify();

private:

Node *first; //pointer to header (dummy) node

};

Bag::Bag()

{

first = new Node;

first->next = NULL;

}

/*

* Destructor. Deallocates all the nodes of the linked list,

* including the header node.

*/

Bag::~Bag()

{

Node *temp;

while (first != NULL)

{

temp=first;

first=first->next;

delete temp;

}

}

/*

* Determines whether the list is empty.

*

* Returns true if the list is empty, false otherwise.

*/

bool Bag::isEmpty()

{

return first->next == NULL;

}

/*

* Prints the list elements.

*/

void Bag::display()

{

Node * current = first->next;

while(current != NULL)

{

cout << current->info << ” “;

current = current->next;

}

cout << endl;

}

/*

* Adds the element x to the beginning of the list.

*

* x: element to be added to the list.

*/

void Bag::add(char x)

{

Node *p = new Node;

p->info = x;

p->next = first->next;

first->next = p;

}

/*

* Removes the first occurrence of x from the list. If x is not found,

* the list remains unchanged.

*

* x: element to be removed from the list.

*/

void Bag::remove(char x)

{

Node * old = first->next,

* p = first;

//Finding the address of the node before the one to be deleted

bool found = false;

while (old != NULL && !found)

{

if (old->info == x) found = true;

else

{

p = old;

old = p->next;

}

}

//if x is in the list, remove it.

if (found)

{

p->next = old->next;

delete old;

}

}

void Bag::modify()

{

int flag[26];

for(int i=0;i<26;i++)

{

flag[i] = 0;

}

Node *start = first -> next;

Node *prev= start,*temp;

while(start != NULL)

{

if(flag[start->info-‘A’] == 0)

{

flag[start->info-‘A’] = 1;

prev = start;

start = start->next;

}

else

{

prev->next = start->next;

delete(start);

start = prev->next;

}

}

}

int main()

{

Bag B;

string s=”MISSISSIPPI”;

for(int j=0;j<s.length();j++)

{

B.add(s[j]);

}

B.display();

B.modify();

B.display();

return 0;

}

/// exercise 4

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> numbers;

for (int i=0; i<10; i++)

numbers.push_back(rand()%21);

int table[21];

for(int i=0;i<21;i++)

table[i] = 0;

list<int>::iterator it;

for(it=numbers.begin();it!=numbers.end();it++)

{

table[*it]++;

}

for(int i=0;i<21;i++)

{

cout<<i<<” “<<table[i]<<endl;

}

return 0;

}

Buy Essay
Calculate your paper price
Pages (550 words)
Approximate price: -

Help Me Write My Essay - Reasons:

Best Online Essay Writing Service

We strive to give our customers the best online essay writing experience. We Make sure essays are submitted on time and all the instructions are followed.

Our Writers are Experienced and Professional

Our essay writing service is founded on professional writers who are on stand by to help you any time.

Free Revision Fo all Essays

Sometimes you may require our writers to add on a point to make your essay as customised as possible, we will give you unlimited times to do this. And we will do it for free.

Timely Essay(s)

We understand the frustrations that comes with late essays and our writers are extra careful to not violate this term. Our support team is always engauging our writers to help you have your essay ahead of time.

Customised Essays &100% Confidential

Our Online writing Service has zero torelance for plagiarised papers. We have plagiarism checking tool that generate plagiarism reports just to make sure you are satisfied.

24/7 Customer Support

Our agents are ready to help you around the clock. Please feel free to reach out and enquire about anything.

Try it now!

Calculate the price of your order

Total price:
$0.00

How it works?

Follow these simple steps to get your paper done

Place your order

Fill in the order form and provide all details of your assignment.

Proceed with the payment

Choose the payment system that suits you most.

Receive the final file

Once your paper is ready, we will email it to you.

HOW OUR ONLINE ESSAY WRITING SERVICE WORKS

Let us write that nagging essay.

STEP 1

Submit Your Essay/Homework Instructions

By clicking on the "PLACE ORDER" button, tell us your requires. Be precise for an accurate customised essay. You may also upload any reading materials where applicable.

STEP 2

Pick A & Writer

Our ordering form will provide you with a list of writers and their feedbacks. At step 2, its time select a writer. Our online agents are on stand by to help you just in case.

STEP 3

Editing (OUR PART)

At this stage, our editor will go through your essay and make sure your writer did meet all the instructions.

STEP 4

Receive your Paper

After Editing, your paper will be sent to you via email.

× How can I help you?