DSA5
DSA5
CODE
import java.util.*;
class CircularLinkedList
{
Scanner sc=new Scanner(System.in);
Node(int data)
{
this.data=data;
this.next=null;
}
}
Node head=null;
Node tail=null;
void create()
{
int n;
do
{
System.out.println("Enter data");
Node newNode=new Node(sc.nextInt());
if(head==null)
{
head=newNode;
tail=newNode;
newNode.next=head;
}
else
{
tail.next=newNode;
tail=newNode;
tail.next=head;
}
void insert()
{
int n,pos;
do
{
System.out.println("Enter data");
Node newNode=new Node(sc.nextInt());
if(head==null)
{
head=newNode;
tail=newNode;
newNode.next=head;
}
else
{
System.out.println("Insert: 1.Begin, 2.End, 3.Position");
System.out.println("Enter your choice");
int ch=sc.nextInt();
switch(ch)
{
case 1:
newNode.next=head;
head=newNode;
tail.next=head;
break;
case 2:
tail.next=newNode;
tail=newNode;
tail.next=head;
break;
case 3:
System.out.println("Enter the position");
pos=sc.nextInt();
Node temp=head;
for (int i=1;i<pos-1;i++)
{
temp=temp.next;
}
newNode.next=temp.next;
temp.next=newNode;
break;
}
}
void delete()
{
int n,pos;
do
{
System.out.println("Delete: 1.Begin, 2.End, 3.Position");
System.out.println("Enter your choice");
int ch=sc.nextInt();
switch(ch)
{
case 1:
if(head!=null)
{
if(head==tail)
{
head=null;
tail=null;
}
else
{
head=head.next;
tail.next=head;
}
}
break;
case 2:
if(head!=null)
{
if(head==tail)
{
head=null;
tail=null;
}
else
{
Node temp=head;
while(temp.next!=tail)
{
temp=temp.next;
}
temp.next=head;
tail=temp;
}
}
break;
case 3:
System.out.println("Enter the position");
pos=sc.nextInt();
Node temp2=head;
for (int i=1;i<pos-1;i++)
{
temp2=temp2.next;
}
temp2.next=temp2.next.next;
break;
}
void traverse()
{
if(head==null)
{
System.out.println("No linked list");
return;
}
Node temp=head;
do
{
System.out.println(temp.data);
temp=temp.next;
}
while(temp!=head);
}
switch(ch)
{
case 1:
s.create();
break;
case 2:
s.insert();
break;
case 3:
s.delete();
break;
case 4:
s.traverse();
break;
case 5:
System.exit(0);
}
}
}
}
OUTPUT