Doubly linked list is a linked data structure that consists of a set of sequentially linked nodes. Each node contains two links (references to the previous and to the next node) and data. The links help to iterate the node forward and backward.Write a program to implement doubly ended linked list with all the operations.

Insertion sort is a sorting algorithm uses to sort items in the array or linked list. It can sort the elements in ascending order or descending order. Insertion sort is a simple sorting algorithm. It works efficiently for small data sets. Insertion sort builds the sorted array. It is best suitable for nearly sorted arrays and a small set of elements. Write a program to sort the elements in the linked list using insertion sort

Least Significant Digit (LSD) radix sort process the integer representations starting from the least digit and moves towards the most significant digit. Radix sort is a linear sorting algorithm that sorts data with integer keys by grouping keys by the individual digits which share the same significant position and value.

The exchange sort is a sorting algorithm that compares each item with other items of the array and swap the item if requires.

Sort the items by exchanging pairs of items until the sequence is sorted. In general, an algorithm may exchange adjacent elements as well as widely separated one.

Shell sort is a sorting algorithm that starts by sorting pairs of elements far apart from each other, then progressively reducing the gap between elements to be compared. Shell sort is a variation of insertion sort. Shell sort is a generalization of insertion sort.

Selection sort is sorting algorithm that divide into the sorted and unsorted part. It moves unsorted items to sorted array every step. It is an in-place comparison sort and faster than bubble sort. Write a program to implement selection sort.