Question
#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< 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
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started