0% found this document useful (0 votes)
154 views9 pages

2-Sort The Bitonic DLL-05-01-2024

The document discusses sorting a bitonic doubly linked list. It provides code to define a Node class with data, next and prev pointers. It also includes methods to push nodes, sort the list by moving nodes to the front or back, and print the list.

Uploaded by

weton67588
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
154 views9 pages

2-Sort The Bitonic DLL-05-01-2024

The document discusses sorting a bitonic doubly linked list. It provides code to define a Node class with data, next and prev pointers. It also includes methods to push nodes, sort the list by moving nodes to the front or back, and print the list.

Uploaded by

weton67588
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Sort Bitonic DLL

Sort the bitonic doubly linked list


Problem: Sort the given biotonic doubly linked list

Below diagram shows a Biotonic double linked list.

10 12 13 9 5
1 import java.util.*;
2 Class Main {
3 static class Node {
4 int date;
5 Node next;
6 Node prev;
7 };
8 static Node sort(Node head) {
9 if(head==null || head.next==null)
10 return head;
11 Node front = head;
12 Node last = head;
13 Node res = new Node();
14 Node resend = res;
15 Node next;
16 while(last.next ! = null)
17 last = last.next;
18
19
20
21
22
1 while(front ! = last) {
2 if(last.data <= front.data) {
3
resend.next = last;
4
5 next = last.prev;
6 last.prev.next = null;
7 last.prev = resEnd;
8
last = next;
9
10 resend = resend.next;
11 }
12 else {
13
resEnd.next = front;
14
15 next = front.next;
16 front.next = null;
17 front.prev = resEnd;
18
front = next;
19
20 resend = resend.next;
21 }
22 }
1 resEnd.next = front;
2 front.prev = resend;
3
4 return res.next;
5 }
6 static Node push(Node head_ref, int new_data) {
7
8 Node new_node = new Node();
9 new_node.data = new_data;
10 new_node.prev = null;
11
12 new_node.next = head_ref;
13 if( head_ref ! = null)
14 head_ref.prev = new_node;
15
16 head_ref = new_node;
17 return head_ref;
18 }
19
20
21
22
1 static void printlist(Node head) {
2 if(head == null)
3
4 System.out.print(“Doubly Linked list is empty”);
5 while(head ! = null) {
6 System.out.print(head.data + “ “);
7
8 head = head.next;
9 }
10 }
11
12 public static void main(String args[]) {
13 Scanner sc = new Scanner(System.in);
14 int n=sc.nextInt();
15
16 Node head = null;
17 int arr[] = new int[n];
18
19
20
21
22
1 for(int i=0;i<n;i++) {
2 int m=sc.nextInt();
3
4 head = push(head,m);
5 }
6 head = sort(head);
7
8 System.out.pritnln(“After sorting:”);
9 printList(head);
10 }
11
12 }
13
14
15
16
17
18
19
20
21
22
THANK YOU

You might also like