Csci251851advanced programming- write container class


Assignment

Aim:

This assignment is to familiarise you with the use of container classes in your programs.

On completion you should know how to:
- Write container class objects with overloaded operators.
- Implement programs incrementally to minimise debugging.
- Custom design container class objects for software applications.

Requirements:
Complete the following class object by writing the code needed in the provided files. Much of this is explained in the week-4 lecture notes "4b C++ Classes - book.pdf". After completing each step, test that your code works by writing appropriate code in main.cpp.

Step 1

Implement all public member functions of the linked list class declared below in files list.h and list.cpp. Note: RemoveHead() returns true if an item is successfully removed from the list or false if unsuccessful (i.e. the list is empty). Also, implement the main() function given below in main.cpp. Modify the main() function by inserting code for testing all the list's member functions. Your main() should print on the screen the test being performed and produce output showing that the test case works. (e.g. "Testing AddTail()", Testing RemoveHead()", "Testing destructor")

struct Node
{
int Item; Node *Next;
};

class LinkedList
{
public:
LinkedList();
~LinkedList();
void AddTail(int Item); // adds item to tail bool RemoveHead(int &Item);// removes item from head
void Print(); // prints list. eg 12 34 21 26 private:
Node *Head;
};

int main()
{
LinkedList L1 . . .

// Put your code for testing your list functions here

return 0;
}

Step 2

Also implement AddHead() and RemoveTail() public member functions. AddHead() adds an item to the head of the list. RemoveTail() removes an item from the tail of the list and returs true if successful, or false if the list is empty. Modify the main() function by adding code for testing these functions. Make sure you print on the screen the test being performed and produce output that shows that the tests worked.

Step 3

In your linked list class, also implement a copy constructor that makes a deep copy of the list argument. Add code for testing the copy constructor on empty and non-empty lists. Make sure you print on the screen the test being performed and produce output that shows that the tests worked.

Step 4

AssignmentImplement an assignment operator in your LinkedList class. The assignment operator should ensure multiple assignments are possible. eg the following statements should make A and B identical to C.

List A, B, C;
for(int i=0; i<10; i++) C.AddHead(i);
A = B = C;

Ensure there are no memory leaks and all lists have their own separate memory. You should not assume the left-hand operand is always empty. Add code in the main for testing the assignment operator on both empty and non-empty lists.

Step 5

Implement the addition operator (+) in your LinkedList class. Your assignment operator should enable a concatenated list to be assigned to another list. E.g.

LinkedList L1,L2,L3;

... // code for adding data to lists

L3 = L1 + L2; // makes L3 a concatenated list of L1 and L2

Add code to the main() for testing the plus operator on both empty and non-empty lists.

Attachment:- Assignment-CPP.zip

Request for Solution File

Ask an Expert for Answer!!
Computer Engineering: Csci251851advanced programming- write container class
Reference No:- TGS02248255

Expected delivery within 24 Hours