In this we are going to see a basic program based on Selection Sort Linked List c++ in C++ Programming Language.
Â
The Code given below can be used in TURBO C++ Compilers: -
#include <iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
struct Num
{
int n;
struct Num *next;
};
Num *Start = NULL;
Num *Rear = NULL;
void Insert()
{
Num *ptr = new Num;
cout << "Enter number: ";
cin >> ptr->n;
ptr->next = NULL;
if (Start == NULL)
Start = Rear = ptr;
else
{
Rear->next = ptr;
Rear = ptr;
}
}
Num *SelectSort()
{
Num *ptr1, *ptr2, *ptr3, *ptr4, *temp;
ptr1 = ptr2 = Start;
while (ptr2->next)
{
ptr3 = ptr4 = ptr2->next;
while (ptr4)
{
if (ptr2->n > ptr4->n)
{
if (ptr2->next == ptr4)
{
if (ptr2 == Start)
{
ptr2->next = ptr4->next;
ptr4->next = ptr2;
temp = ptr2;
ptr2 = ptr4;
ptr4 = temp;
ptr3 = ptr4;
Start = ptr2;
ptr4 = ptr4->next;
}
else
{
ptr2->next = ptr4->next;
ptr4->next = ptr2;
ptr1->next = ptr4;
temp = ptr2;
ptr2 = ptr4;
ptr4 = temp;
ptr3 = ptr4;
ptr4 = ptr4->next;
}
}
else
{
if (ptr2 == Start)
{
temp = ptr2->next;
ptr2->next = ptr4->next;
ptr4->next = temp;
ptr3->next = ptr2;
temp = ptr2;
ptr2 = ptr4;
ptr4 = temp;
ptr3 = ptr4;
ptr4 = ptr4->next;
Start = ptr2;
}
else
{
temp = ptr2->next;
ptr2->next = ptr4->next;
ptr4->next = temp;
ptr3->next = ptr2;
ptr1->next = ptr4;
temp = ptr2;
ptr2 = ptr4;
ptr4 = temp;
ptr3 = ptr4;
ptr4 = ptr4->next;
}
}
}
else
{
ptr3 = ptr4;
ptr4 = ptr4->next;
}
}
ptr1 = ptr2;
ptr2 = ptr2->next;
}
return Start;
}
void Display()
{
Num *ptr = new Num;
ptr = Start;
while (ptr != NULL)
{
cout << ptr->n << "\t";
ptr = ptr->next;
}
}
int main()
{
clrscr();
cout << "Enter 10 values into the linked list:\n";
for (int i = 0; i < 10; i++)
{
Insert();
}
Start = SelectSort();
Display();
getch();
return 0;
}
The Code given below can be used in gcc/g++ Compilers: -
#include <iostream>
using namespace std;
struct Num
{
int n;
struct Num *next;
};
Num *Start = NULL;
Num *Rear = NULL;
void Insert()
{
Num *ptr = new Num;
cout << "Enter number: ";
cin >> ptr->n;
ptr->next = NULL;
if (Start == NULL)
Start = Rear = ptr;
else
{
Rear->next = ptr;
Rear = ptr;
}
}
Num *SelectSort()
{
Num *ptr1, *ptr2, *ptr3, *ptr4, *temp;
ptr1 = ptr2 = Start;
while (ptr2->next)
{
ptr3 = ptr4 = ptr2->next;
while (ptr4)
{
if (ptr2->n > ptr4->n)
{
if (ptr2->next == ptr4)
{
if (ptr2 == Start)
{
ptr2->next = ptr4->next;
ptr4->next = ptr2;
temp = ptr2;
ptr2 = ptr4;
ptr4 = temp;
ptr3 = ptr4;
Start = ptr2;
ptr4 = ptr4->next;
}
else
{
ptr2->next = ptr4->next;
ptr4->next = ptr2;
ptr1->next = ptr4;
temp = ptr2;
ptr2 = ptr4;
ptr4 = temp;
ptr3 = ptr4;
ptr4 = ptr4->next;
}
}
else
{
if (ptr2 == Start)
{
temp = ptr2->next;
ptr2->next = ptr4->next;
ptr4->next = temp;
ptr3->next = ptr2;
temp = ptr2;
ptr2 = ptr4;
ptr4 = temp;
ptr3 = ptr4;
ptr4 = ptr4->next;
Start = ptr2;
}
else
{
temp = ptr2->next;
ptr2->next = ptr4->next;
ptr4->next = temp;
ptr3->next = ptr2;
ptr1->next = ptr4;
temp = ptr2;
ptr2 = ptr4;
ptr4 = temp;
ptr3 = ptr4;
ptr4 = ptr4->next;
}
}
}
else
{
ptr3 = ptr4;
ptr4 = ptr4->next;
}
}
ptr1 = ptr2;
ptr2 = ptr2->next;
}
return Start;
}
void Display()
{
Num *ptr = new Num;
ptr = Start;
while (ptr != NULL)
{
cout << ptr->n << "\t";
ptr = ptr->next;
}
}
int main()
{
cout << "Enter 10 values into the linked list:\n";
for (int i = 0; i < 10; i++)
{
Insert();
}
Start = SelectSort();
Display();
return 0;
}
#ENJOY CODING
Post a Comment
FOR ANY DOUBTS AND ERRORS FEEL FREE TO ASK. YOUR DOUBTS WILL BE ADDRESSED ASAP