For this program you will add and test 2 new member


For this program you will add and test 2 new member functions to the IntSLList class posted on the website.

The two member functions are:

insertByPosn(int el, intpos)

Assuming that the positions of elements of a list begin numbering at 1 and continue to the end of the list, you will insert a new node with info value el at position pos.  pos will become the position of the new node in the modified list.  For example, if pos = 1, insert the new node at the head of the list.  If pos = 2, for example, insert the new node BEFORE the node currently at position 2. If the list is empty prior to insertion, insert the new node in the list and adjust head and tail pointers.  If pos is too large, don't do anything. If pos is 0 or negative, don't do anything.

deleteByPosn(intpos)

Assume position of elements are defined as above. If pos is zero or negative, do nothing.  If the list is empty prior to the request to delete a node, do nothing. If pos is too large, do nothing.

To aid in verifying results, you should use the following modified version of printAll.  This requires:  include

voidIntSLList::printAll(stringlocn) const {

cout<<"Contents of the list "<

for (IntSLLNode *tmp = head; tmp != 0; tmp = tmp->next)

cout<info <<" ";

if (head != 0)

       cout<<"Head is: "<< head->info <<" Tail is: "<< tail->info <

}

For extra credit, you can also create the following:

reverseList()

Traverse the existing list beginning at the head and create a new (reversed) list with head newhead and tail newtail.  Put new nodes in the new list by putting the new nodes at the head of the new list each time. Do not call any other member functions during this process. If the list to be reversed is empty, make sure that you account for this case. After the new (reversed) list is created, delete the old list using its destructor.

The test program to be used is:

int main()

{

       IntSLListsingly_linked_list = IntSLList();

       singly_linked_list.addToHead(9);

singly_linked_list.addToHead(7);

       singly_linked_list.addToHead(6);

       singly_linked_list.printAll("at creation:");

       singly_linked_list.insertByPosn(8, 2);

       singly_linked_list.printAll("after insertion of 8 at position 2:");

       singly_linked_list.insertByPosn(10, 4);

       singly_linked_list.printAll("after insertion of 10 at position 4:");

       singly_linked_list.insertByPosn(12, 6);

       singly_linked_list.printAll("after insertion of 12 at position 6:");

       singly_linked_list.insertByPosn(14, 8);

       singly_linked_list.printAll("after attempted insertion of 14 at position 8:");

       singly_linked_list.insertByPosn(5, 1);

       singly_linked_list.printAll("after insertion of 5 at position 1:");

       singly_linked_list.insertByPosn(4, 0);

       singly_linked_list.printAll("after attempted insertion of 4 at position 0:");

       singly_linked_list.removeByPosn(2);

       singly_linked_list.printAll("after deletion of 6 at position 2:");

       singly_linked_list.removeByPosn(6);

       singly_linked_list.printAll("after deletion of 12 at position 6:");

       singly_linked_list.removeByPosn(10);

       singly_linked_list.printAll("after attempted deletion at position 10:");

       // insert test for optional list reversal here

       return (0);

}

The correct output from running the test program is:

Contents of the list at creation:

6 7 9 Head is: 6 Tail is: 9

Contents of the list after insertion of 8 at position 2:

6 8 7 9 Head is: 6 Tail is: 9

Contents of the list after insertion of 10 at position 4:

6 8 7 10 9 Head is: 6 Tail is: 9

Contents of the list after insertion of 12 at position 6:

6 8 7 10 9 12 Head is: 6 Tail is: 12

Contents of the list after attempted insertion of 14 at position 8:

6 8 7 10 9 12 Head is: 6 Tail is: 12

Contents of the list after insertion of 5 at position 1:

5 6 8 7 10 9 12 Head is: 5 Tail is: 12

Contents of the list after attempted insertion of 4 at position 0:

5 6 8 7 10 9 12 Head is: 5 Tail is: 12

Contents of the list after deletion of 6 at position 2:

5 8 7 10 9 12 Head is: 5 Tail is: 12

Contents of the list after deletion of 12 at position 6:

5 8 7 10 9 Head is: 5 Tail is: 9

Contents of the list after attempted deletion at position 10:

5 8 7 10 9 Head is: 5 Tail is: 9

Request for Solution File

Ask an Expert for Answer!!
C/C++ Programming: For this program you will add and test 2 new member
Reference No:- TGS01586205

Expected delivery within 24 Hours