link list, C/C++ Programming

Assignment Help:
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, int pos)
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(int pos)
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

void IntSLList::printAll(string locn) const {
cout << "Contents of the list " << locn << endl;
for (IntSLLNode *tmp = head; tmp != 0; tmp = tmp->next)
cout << tmp->info << " ";
if (head != 0)
cout << "Head is: " << head->info << " Tail is: " << tail->info << endl << endl;
}

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()
{
IntSLList singly_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


Related Discussions:- link list

Convert afl amibroker to dll, Project Description: I need to convert AFL...

Project Description: I need to convert AFL code of Amibroker to DLL plugin to hide original formula, and also to protect the DLL and making it hardware locked. I need to wrap th

Write a c++ program that calculates the area of a circle, Write a C++ progr...

Write a C++ program that calculates the area of a circle, rectangle and square using overloaded versions of a function area ().Your program should include both declarations and def

Compiler related, Please give me a programming code of first & follow wit...

Please give me a programming code of first & follow with c or c++ laqnguage .When anyone give me the programming code of first & follow please explain every lines with the help

What is an explicit constructor, A conversion constructor declared with the...

A conversion constructor declared with the explicit keyword. The compiler does not use an explicit constructor to execute an implied conversion of types. Its purpose is reserved ex

Matrix transposition cipher, write a C rpogram that can display the transpo...

write a C rpogram that can display the transpose form of a ciphertext matrix.Prompt users to provide row and coloumn number of matrix.Then user will input plaintext and the program

Big M method, I Want a answer for solving the big M method in the topic of ...

I Want a answer for solving the big M method in the topic of simplex method...

Virtual constructor, Is it possible to have Virtual Constructor? If yes, ho...

Is it possible to have Virtual Constructor? If yes, how? If not, Why not possible?

What is an incomplete type in c++, Incomplete types refer to pointers in wh...

Incomplete types refer to pointers in which there is no availability of the execution of the referenced location or it points to some location whose value is not available for modi

C++ code, write c++ programm calculate electricity bill with person name,us...

write c++ programm calculate electricity bill with person name,use ,id

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd