Create, Display and Reverse Display in Circular Doubly Linked List in DSA Python

Program 1

# implementation of doubly Circular Linked list
class Node:
    def __init__(self):
        self.ladd=None
        self.data=None
        self.radd=None

class CircularDoubleList:
     def __init__(self):
          self.start=None
          self.count=0
          # method for create list
     def createList(self):
         n=int(input("Enter an element"))
         self.start=Node()
         self.start.ladd=None
         self.start.data=n
         self.start.radd=None
         temp=self.start
         self.count=self.count+1
         choice=input("Want to continue: ")
         while(choice=="Y" or choice=="y"):
              n=int(input("Enter next element"))
              newnode=Node()
              newnode.ladd=None
              newnode.data=n
              newnode.radd=None
              temp.radd=newnode
              newnode.ladd=temp
              self.start.ladd=newnode
              newnode.radd=self.start
              temp=temp.radd
              self.count=self.count+1
              choice=input("Want to continue: ")
      
      # method for display    
     def displayList(self):
         if(self.start==None):
             print("List not found")
         else:
             temp=self.start
             print()
             while(1):
                 print(temp.data,end=" ") 
                 temp=temp.radd
                 if(temp==self.start):
                     break   
             print("\nTotal Node is : " ,self.count)         

       # method for reverse display    
     def reversedisplayList(self):
          if(self.start==None):
             print("List not found")
          else: 
           temp=self.start.ladd 
           temp1=self.start.ladd 
           while(1):
               print(temp.data,end=" ")
               temp=temp.ladd
               if(temp==temp1):
                   break

# Main Menu
mylist=CircularDoubleList()
while(1):
    print("------------------Circular Doubly Linked List-----------------")
    print("1.Create")
    print("2.Display")
    print("3.Reverse Display")
    print("4.Insert First")
    print("5.Insert Last")
    print("6.Insert Middle")
    print("7.Delete First")
    print("8.Delete Last")
    print("9.Delete Middle")
    print("10.Exit")
    print("----------------------------------------------------------------")
    choice=int(input("Enter your choice"))
    if(choice==1):
        mylist.createList()
    elif(choice==2):
        mylist.displayList()
    elif(choice==3):
        mylist.reversedisplayList()
    else:
        break        

 

courses

DataFlair Team

DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.

Leave a Reply

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