Circular Linked List in DSA Java Part – 2
by TechVidvan Team
Program 1
// Single Circular linked list
import java.util.*;
class CircularLinkedList
{
static class Node
{
int data;
Node add;
}
Node start=null,new1,temp,next1,prev1,last;
void create()
{
Scanner scan=new Scanner(System.in);
int n;
String choice;
System.out.println("Enter an element ");
n=scan.nextInt();
start=new Node();
start.data=n;
start.add=null;
temp=start;
System.out.println("Want to continue");
choice=scan.next();
while(choice.toUpperCase().equals("Y"))
{
System.out.println("Enter next element ");
n=scan.nextInt();
new1=new Node();
new1.data=n;
new1.add=null;
temp.add=new1;
new1.add=start;
temp=temp.add;
System.out.println("Want to continue");
choice=scan.next();
}
}
void display()
{
if(start==null)
System.out.println("***********List not found*************");
else
{
temp=start;
do
{
System.out.print(temp.data + " ");
temp=temp.add;
}while(temp!=start);
}
}
void insertFirst()
{
if(start==null)
System.out.println("***********List not found*************");
else
{
Scanner scan=new Scanner(System.in);
int n;
System.out.println("Enter an element for insert");
n=scan.nextInt();
new1=new Node();
new1.data=n;
new1.add=null;
last=start;
do
{
last=last.add;
}while(last.add!=start);
new1.add=start;
start=new1;
last.add=start;
}
}
void insertLast()
{
if(start==null)
System.out.println("***********List not found*************");
else
{
Scanner scan=new Scanner(System.in);
int n;
System.out.println("Enter an element for insert");
n=scan.nextInt();
new1=new Node();
new1.data=n;
new1.add=null;
last=start;
do
{
last=last.add;
}while(last.add!=start);
last.add=new1;
new1.add=start;
}
}
void insertMiddle()
{
int n,pos,i=1;
Scanner scan=new Scanner(System.in);
if(start==null)
System.out.println("List not found");
else
{
System.out.println("Enter an element for insert");
n=scan.nextInt();
new1=new Node();
new1.data=n;
new1.add=null;
System.out.println("Enter an position for insert");
pos=scan.nextInt();
next1=start;
while(i<pos)
{
prev1=next1;
next1=next1.add;
i++;
}
prev1.add=new1;
new1.add=next1;
}
}
void deleteFirst()
{
if(start==null)
System.out.println("*************List not found*************");
else
{
do
{
last=last.add;
}while(last.add!=start);
temp=start;
start=start.add;
last.add=start;
System.out.println("Deleted node is " +temp.data);
temp=null;
}
}
void deleteMiddle()
{
Scanner scan=new Scanner(System.in);
if(start==null)
System.out.println("List Not found..........");
else
{
int pos,i=1;
System.out.println("Enter your choice");
pos=scan.nextInt();
next1=start;
while(i<pos)
{
prev1=next1;
next1=next1.add;
i++;
}
temp=next1;
next1=next1.add;
prev1.add=next1;
System.out.println("Deleted node is : " + temp.data);
temp=null;
}
}
void deleteLast()
{
if(start==null)
System.out.println("*************List not found*************");
else
{
last=start;
do
{
prev1=last;
last=last.add;
}while(last.add!=start);
prev1.add=start;
System.out.println("Deleted node is " +last.data);
last=null;
}
}
}
class TestCircular
{
public static void main(String args[])
{
CircularLinkedList C=new CircularLinkedList();
Scanner scan=new Scanner(System.in);
int ch;
do
{
System.out.println("\n-------------------Circluar Linked List-------------------");
System.out.println("1.Create");
System.out.println("2.Display");
System.out.println("3.Insert First");
System.out.println("4.Insert Middle");
System.out.println("5.Insert Last");
System.out.println("6.Delete First");
System.out.println("7.Delete Middle");
System.out.println("8.Delete Last");
System.out.println("9.Exit");
System.out.println("\n--------------------------------------------------\n");
System.out.println("Enter your choice");
ch=scan.nextInt();
switch(ch)
{
case 1:C.create();break;
case 2:C.display();break;
case 3:C.insertFirst();break;
case 4:C.insertMiddle();break;
case 5:C.insertLast();break;
case 6:C.deleteFirst();break;
case 7:C.deleteMiddle();break;
case 8:C.deleteLast();break;
case 9:break;
}
}while(ch!=9);
}
}
Tags: Circular Linked Listcircular linked list in dsa javadata structures with javadsa using javadsa using java practicaldsa using java program
TechVidvan Team
TechVidvan Team provides high-quality content & courses on AI, ML, Data Science, Data Engineering, Data Analytics, programming, Python, DSA, Android, Flutter, full stack web dev, MERN, and many latest technology.