Selection Sort Linked List c++ || C++

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

Previous Post Next Post