Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

#include #include #include using namespace std; /* * Node Declaration */ struct linklist { int info; struct linklist *next; }*start; /* * Class Declaration */

#include

#include

#include

using namespace std;

/*

* Node Declaration

*/

struct linklist

{

int info;

struct linklist *next;

}*start;

/*

* Class Declaration

*/

class single_llist

{

public:

linklist* create_node(int);

void insert_begin();

void insert_pos();

void insert_last();

void delete_pos();

void sort();

void search();

void update();

void reverse();

void display();

single_llist()

{

start = NULL;

}

};

/*

* Main :contains menu

*/

main()

{

int choice, nodes, element, position, i;

single_llist sl;

start = NULL;

while (1)

{

cout<

cout<

cout<

cout<<"1.Insert Node at beginning"<

cout<<"2.Insert node at last"<

cout<<"3.Insert node at position"<

cout<<"4.Sort Link List"<

cout<<"5.Delete a Particular Node"<

cout<<"6.Update Node Value"<

cout<<"7.Search Element"<

cout<<"8.Display Linked List"<

cout<<"9.Reverse Linked List "<

cout<<"10.Exit "<

cout<<"Enter your choice : ";

cin>>choice;

switch(choice)

{

case 1:

cout<<"Inserting Node at Beginning: "<

sl.insert_begin();

cout<

break;

case 2:

cout<<"Inserting Node at Last: "<

sl.insert_last();

cout<

break;

case 3:

cout<<"Inserting Node at a given position:"<

sl.insert_pos();

cout<

break;

case 4:

cout<<"Sort Link List: "<

sl.sort();

cout<

break;

case 5:

cout<<"Delete a particular node: "<

sl.delete_pos();

break;

case 6:

cout<<"Update Node Value:"<

sl.update();

cout<

break;

case 7:

cout<<"Search element in Link List: "<

sl.search();

cout<

break;

case 8:

cout<<"Display elements of link list"<

sl.display();

cout<

break;

case 9:

cout<<"Reverse elements of Link List"<

sl.reverse();

cout<

break;

case 10:

cout<<"Exiting..."<

exit(1);

break;

default:

cout<<"Wrong choice"<

}

}

}

/*

* Creating Node

*/

linklist *single_llist::create_node(int value)

{

struct linklist *temp, *s;

temp = new(struct linklist);

if (temp == NULL)

{

cout<<"Memory not allocated "<

return 0;

}

else

{

temp->info = value;

temp->next = NULL;

return temp;

}

}

/*

* Inserting element in beginning

*/

void single_llist::insert_begin()

{

int value;

cout<<"Enter the value to be inserted: ";

cin>>value;

struct linklist *temp, *p;

temp = create_node(value);

if (start == NULL)

{

start = temp;

start->next = NULL;

}

else

{

p = start;

start = temp;

start->next = p;

}

cout<<"Element Inserted at beginning"<

}

/*

* Inserting Node at last

*/

void single_llist::insert_last()

{

int value;

cout<<"Enter the value to be inserted: ";

cin>>value;

struct linklist *temp, *s;

temp = create_node(value);

s = start;

while (s->next != NULL)

{

s = s->next;

}

temp->next = NULL;

s->next = temp;

cout<<"Element Inserted at last"<

}

/*

* Insertion of node at a given position

*/

void single_llist::insert_pos()

{

int value, pos, counter = 0;

cout<<"Enter the value to be inserted: ";

cin>>value;

struct linklist *temp, *s, *ptr;

temp = create_node(value);

cout<<"Enter the postion at which node to be inserted: ";

cin>>pos;

int i;

s = start;

while (s != NULL)

{

s = s->next;

counter++;

}

if (pos == 1)

{

if (start == NULL)

{

start = temp;

start->next = NULL;

}

else

{

ptr = start;

start = temp;

start->next = ptr;

}

}

else if (pos > 1 && pos <= counter)

{

s = start;

for (i = 1; i < pos; i++)

{

ptr = s;

s = s->next;

}

ptr->next = temp;

temp->next = s;

}

else

{

cout<<"Positon out of range"<

}

}

/*

* Sorting Link List

*/

void single_llist::sort()

{

struct linklist *ptr, *s;

int value;

if (start == NULL)

{

cout<<"The List is empty"<

return;

}

ptr = start;

while (ptr != NULL)

{

for (s = ptr->next;s !=NULL;s = s->next)

{

if (ptr->info > s->info)

{

value = ptr->info;

ptr->info = s->info;

s->info = value;

}

}

ptr = ptr->next;

}

}

/*

* Delete element at a given position

*/

void single_llist::delete_pos()

{

int pos, i, counter = 0;

if (start == NULL)

{

cout<<"List is empty"<

return;

}

cout<<"Enter the position of value to be deleted: ";

cin>>pos;

struct linklist *s, *ptr;

s = start;

if (pos == 1)

{

start = s->next;

}

else

{

while (s != NULL)

{

s = s->next;

counter++;

}

if (pos > 0 && pos <= counter)

{

s = start;

for (i = 1;i < pos;i++)

{

ptr = s;

s = s->next;

}

ptr->next = s->next;

}

else

{

cout<<"Position out of range"<

}

free(s);

cout<<"Element Deleted"<

}

}

/*

* Update a given Node

*/

void single_llist::update()

{

int value, pos, i;

if (start == NULL)

{

cout<<"List is empty"<

return;

}

cout<<"Enter the node postion to be updated: ";

cin>>pos;

cout<<"Enter the new value: ";

cin>>value;

struct linklist *s, *ptr;

s = start;

if (pos == 1)

{

start->info = value;

}

else

{

for (i = 0;i < pos - 1;i++)

{

if (s == NULL)

{

cout<<"There are less than "<

return;

}

s = s->next;

}

s->info = value;

}

cout<<"Node Updated"<

}

/*

* Searching an element

*/

void single_llist::search()

{

int value, pos = 0;

bool flag = false;

if (start == NULL)

{

cout<<"List is empty"<

return;

}

cout<<"Enter the value to be searched: ";

cin>>value;

struct linklist *s;

s = start;

while (s != NULL)

{

pos++;

if (s->info == value)

{

flag = true;

cout<<"Element "<

}

s = s->next;

}

if (!flag)

cout<<"Element "<

}

/*

* Reverse Link List

*/

void single_llist::reverse()

{

struct linklist *ptr1, *ptr2, *ptr3;

if (start == NULL)

{

cout<<"List is empty"<

return;

}

if (start->next == NULL)

{

return;

}

ptr1 = start;

ptr2 = ptr1->next;

ptr3 = ptr2->next;

ptr1->next = NULL;

ptr2->next = ptr1;

while (ptr3 != NULL)

{

ptr1 = ptr2;

ptr2 = ptr3;

ptr3 = ptr3->next;

ptr2->next = ptr1;

}

start = ptr2;

}

/*

* Display Elements of a link list

*/

void single_llist::display()

{

struct linklist *temp;

if (start == NULL)

{

cout<<"The List is Empty"<

return;

}

temp = start;

cout<<"Elements of list are: "<

while (temp != NULL)

{

cout<info<<"->";

temp = temp->next;

}

cout<<"NULL"<

}

I need this programmed to work with the "DISPLAY " chart... One should be able to view the display

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Systems On GPUs In Databases

Authors: Johns Paul ,Shengliang Lu ,Bingsheng He

1st Edition

ISBN: 1680838482, 978-1680838480

More Books

Students also viewed these Databases questions

Question

=+ Is the needed level available within the organization?

Answered: 1 week ago

Question

Develop a program for effectively managing diversity. page 303

Answered: 1 week ago

Question

List the common methods used in selecting human resources. page 239

Answered: 1 week ago