Circular Linked List in DSA Java Part – 2

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); 
    }
}

 

courses

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.

Leave a Reply

Your email address will not be published. Required fields are marked *