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