Class named Node

of the below will need a Class named Node. The ADT description for this class is that it contains two data members similar to Chain (intData and nextPtr). The header should only have the abstraction and the CPP will have the Implementation Coding. Have a Read Only Property (Get Only) for intData and a Get and a Set for NodePtr.

4. Singly Linked List
Make sure to create the Node Class in Question 3 first. Then, create a second Class named SLList. This class will have a Head Pointer that points to the first Node of the Singly Linked Lists. Also, this class will house the Add, Delete, Search and Print Algorithms for the Singly Linked List.

4a. Print Algorithm
Create Print Algorithm/Function to Start from the Head Pointer and Print List.

4b.Adding a Node
Create an Algorithm/Function to add 5 Nodes with the Data Values being 2, 3, 1, 8, and 3 to the End of the List. (Add One at a Time to the End) Do not use a Tail Pointer for this Exercise. Start at the Head and Iterate until the End, then Insert the Node. Repeat this similar process but Add a Sixth Node with Data Value 5 now to the Third Position (Two in Front, Three Behind). Print the Linked List.

4c. Deleting a Node
Create an Algorithm/Function to Delete the Smallest Value Node of the Six Nodes. Print the List. Repeat this process again and Delete the First Node of the List, then Print the List.

5. Doubly Linked List
You will need to create a Second Pointer called prevPtr to the Node class. Make a new class named DoublyLinkedList. Also, create a Pointer for the Tail beside the Head Pointer. Keep SLList and DLList separate as two objects with each its own header and CPP file.

5a. Adding a Node
Create an Algorithm/Function to add 6 Nodes with the Data Values being 3, 2, 3, 1, 8, and 3 by adding only to the Front of the List. (Add One at a Time to the Front). Print the Linked List Values starting from the Head Pointer.

5b. Deleting a Node
Delete all Nodes from the Linked List containing a 3 from the Doubly Linked Lists, then Print the Values starting from the Head.

5c.Reverse Printing
Create an Algorithm/Function to Print the Doubly Linked Lists after performing 5b Backwards Starting from the Tail Pointer. (Hint: Copy, Paste and Augment the first Print to Print Backwards Instead)