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

I want a craiglist poster required, Project Description: I want someone ...

Project Description: I want someone who can post ads for me on Craiglist . I will pay 3$ per ad i need about 30-40 ads per day . Skills required: C Programming, MySQL, Jav

Explain bit-wise operators, Bit-wise Operators Some applications requir...

Bit-wise Operators Some applications require operations to be done on dissimilar bits of a byte separately. Bit-wise operators offer a facility to do just that. There are vario

Assignment problem, how to write c code to solve assignment problem?

how to write c code to solve assignment problem?

Develop an e commerce site, We need an E Commerce site likefifacointrader. ...

We need an E Commerce site likefifacointrader. you must have experience with that kind of work You have to show a sample of work like that site. Skills required are C Prog

Program for design and simulate a basic risc processor, Overall Program Obj...

Overall Program Objective: You will design and simulate a basic RISC processor.   You will create and encode an instruction set.  Your final task will be to "compile" a program

Does improper inheritance have potential to wreck a project, Does improper ...

Does improper inheritance have a potential to wreck a project? Many projects meet a dead end due to bad inheritance. Hence it certainly has potential to wreck a project. Sma

What does extern "c" int func(int *, A: This will turn o_ "name mangling" f...

A: This will turn o_ "name mangling" for func so that one can connect to code compiled by a C compiler.

What is the use of default constructor, What is the use of default construc...

What is the use of default constructor? - It's a constructor that doesn't accept any parameters. - If there is no user-defined constructor for a class, compiler declares a d

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