In: Computer Science
IN C++. Objective: Create a Singly linked list of numbers based upon user input. Program logic: Ask for a number, add that number to the front of the list, print the list. Repeat until they enter -1 for the number. . Sample Input: 10, 15, 5, 2, 4, -1 Output: 4, 2, 5, 15, 10. Next sort all the numbers using selection sort and display them. Next give the user option to search for a specific number in the list. If the user desired number exist output "the number you entered exists" else output "this number does not exist". Next ask user if they want to delete a specific number. Delete and display an appropriate message. If the user specified number does not exist display an appropriate message. Don't use class. Structs and nodes only
code:
#include <iostream>
using namespace std;
// Creating a structure for linked list
struct node{
int data;
struct node *link;
};
struct node* head=NULL; // Initially head will point to no
node
// Function to display elements in linked list
void dis_ele()
{
cout<<"\nThe elements in linked list are: \n";
struct node* p;
p = head;
while(p!=NULL)
{
cout<<p->data<<" ";
p = p->link;
}
}
// Main function
int main()
{
int ele;
// Taking input from the user until he enters -1
while(true)
{
cout<<"Enter the number: ";
cin>>ele;
if(ele==-1)
{
dis_ele();
break;
}
else
{
struct node* temp = (struct node*) malloc(sizeof(struct
node));
temp->data = ele;
temp->link = head; // storing address of head in newly created
node
head = temp; // Now newly created node will become the first
node
}
}
// Sorting using selection sort
int a;
struct node* q;
q = head;
while(q!=NULL)
{
node* min = q;
node* r = q->link;
// Finding min element
while(r!=NULL)
{
if(min->data > r->data)
{
min = r;
}
r = r->link;
}
//Swapping
a = q->data;
q->data = min->data;
min->data = a;
q = q->link;
}
cout<<"\n\nAfter Sorting:";
dis_ele();
// Searching
int x,found=0;
cout<<"\n\nEnter the element you want to search: ";
cin>>x;
struct node* search;
search = head;
while(search!=NULL)
{
if(search->data == x)
{
found=1;
break;
}
search = search->link;
}
if(found==1)
{
cout<<"The number you entered exists\n";
}
else
{
cout<<"The number you entered doesnot exists\n";
}
// Deleting
int y;
cout<<"\n\nEnter the element you want to delete: ";
cin>>y;
struct node* cur;
struct node* pre;
cur = head;
pre = NULL;
while(cur->link!=NULL && cur->data!=y)
{
pre = cur;
cur = cur->link;
}
if(cur->data == y)
{
pre->link = pre->link->link;
free(cur);
cout<<"\nEntered number is deleted from the list";
dis_ele();
}
else
{
cout<<"\nEntered number doesnot exist in the list";
}
return 0;
}
OUTPUT: