

{"id":143283,"date":"2024-09-02T10:19:49","date_gmt":"2024-09-02T04:49:49","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=143283"},"modified":"2024-09-02T10:19:49","modified_gmt":"2024-09-02T04:49:49","slug":"insertion-and-deletion-in-circular-linked-list-in-dsa-python","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/","title":{"rendered":"Insertion and Deletion in Circular Linked List in DSA Python"},"content":{"rendered":"<h3>Program 1<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Implemenation of Circular linked list \r\nclass Node:\r\n    def __init__(self):\r\n         self.data=None\r\n         self.add=None\r\n\r\nclass CircularLinkedList:\r\n     def __init__(self):\r\n           self.start=None\r\n           self.count=0\r\n\r\n           # create list\r\n     def createList(self):\r\n          n=int(input(\"Enter an element\"))\r\n          self.start=Node()\r\n          self.start.data=n\r\n          self.start.add=self.start\r\n          temp=self.start\r\n          self.count=self.count+1\r\n          choice=input(\"Want to continue\")\r\n          while(choice==\"Y\" or choice==\"y\"):\r\n                n=int(input(\"Enter next element\"))\r\n                newnode=Node()\r\n                newnode.data=n\r\n                newnode.add=self.start\r\n                temp.add=newnode\r\n                temp=temp.add\r\n                self.count=self.count+1\r\n                choice=input(\"Want to continue\")\r\n# Display list\r\n     def displayList(self):\r\n          if(self.start==None):\r\n                print(\"List not found\")\r\n          else:\r\n                temp=self.start\r\n                while(True):\r\n                      print(temp.data,end=\" \")\r\n                      temp=temp.add\r\n                      if(temp==self.start):\r\n                            break\r\n                print(\"\\nTotal Node is : \",self.count)   \r\n# insert first node\r\n     def insertFirst(self):\r\n           if(self.start==None):\r\n                 print(\"List not found\")\r\n           else:\r\n                 n=int(input(\"Enter an element\"))\r\n                 newnode=Node() \r\n                 newnode.data=n\r\n                 newnode.add=None\r\n                 last=self.start\r\n                 while(last.add!=self.start):\r\n                       last=last.add\r\n                 newnode.add=self.start\r\n                 self.start=newnode\r\n                 last.add=self.start        \r\n                 self.count=self.count+1               \r\n# insert last node\r\n     def insertLast(self):\r\n           if(self.start==None):\r\n                 print(\"List not found\")\r\n           else:      \r\n                 n=input(\"Enter an element for insert\")\r\n                 newnode=Node()\r\n                 newnode.data=n\r\n                 newnode.add=None\r\n                 last=self.start\r\n                 while(last.add!=self.start):\r\n                       last=last.add\r\n                 last.add=newnode\r\n                 newnode.add=self.start   \r\n                 self.count=self.count+1                     \r\n\r\n # insert middle node\r\n     def insertMiddle(self):\r\n        if(self.start==None):\r\n              print(\"List is empty\")\r\n        else:\r\n            n=int(input(\"Enter an element for insert\"))\r\n            newnode=Node()\r\n            newnode.data=n\r\n            newnode.add=None\r\n            pos=int(input(\"Enter the position\"))\r\n            if(pos&gt;self.count):\r\n                 print(\"Invalid position\")\r\n            else:     \r\n                i=1\r\n                next=self.start\r\n                while(i&lt;pos):\r\n                     prev=next\r\n                     next=next.add\r\n                     i=i+1\r\n                prev.add=newnode\r\n                newnode.add=next                 \r\n                self.count=self.count+1\r\n    \r\n # delete first node\r\n     def deleteFirst(self):\r\n           if(self.start==None):\r\n                 print(\"List not found\")\r\n           else:\r\n                 last=self.start\r\n                 while(last.add!=self.start):\r\n                       last=last.add\r\n                 temp=self.start\r\n                 self.start=self.start.add      \r\n                 last.add=self.start\r\n\r\n                 print(\"Deleted node is: \",temp.data)\r\n                 temp.add=None\r\n                 temp=None   \r\n                 self.count=self.count-1\r\n           \r\n\r\n     # Delete node from Middle  \r\n     def deleteMiddle(self): \r\n        if(self.start==None):\r\n              print(\"List is empty\")\r\n        else:\r\n          pos=int(input(\"Enter the position for delete\"))   \r\n          if(pos&gt;self.count):\r\n               print(\"Invalid position\")\r\n          else:\r\n               i=1\r\n               next=self.start\r\n               while(i&lt;pos):\r\n                    prev=next\r\n                    next=next.add\r\n                    i=i+1\r\n\r\n               temp=next  \r\n               next=next.add                   \r\n               prev.add=next\r\n               print(\"Deleted node is: \",temp.data)\r\n               temp=None\r\n               self.count=self.count-1\r\n\r\n    # delete last node\r\n     def deleteLast(self):\r\n          if(self.start==None):\r\n               print(\"List not found\")\r\n          else:\r\n               last=self.start\r\n               while(last.add!=self.start):\r\n                     prev=last\r\n                     last=last.add\r\n\r\n               prev.add=self.start          \r\n               print(\"Deleted Node is :\",last.data)\r\n               last.add=None\r\n               last=None\r\n               self.count=self.count-1\r\n\r\n            \r\n\r\n# Main Method\r\nmylist=CircularLinkedList()\r\nwhile(1):\r\n    print(\"\\n----------------------Circular Linked List Menu--------------\\n\")\r\n    print(\"1.Create\")\r\n    print(\"2.Display\")\r\n    print(\"3.Insert First\")\r\n    print(\"4.Insert Middle\")\r\n    print(\"5.Insert Last\")\r\n    print(\"6.Delete First\")\r\n    print(\"7.Delete Middle\")\r\n    print(\"8.Delete Last\")\r\n    print(\"9.Exit\")\r\n    print(\"\\n------------------------------------------------------------\\n\")\r\n    choice=int(input(\"Enter your choice\"))\r\n    if(choice==1):\r\n          mylist.createList()\r\n    elif(choice==2):\r\n          mylist.displayList()\r\n    elif(choice==3):\r\n          mylist.insertFirst()\r\n    elif(choice==4):\r\n          mylist.insertMiddle()      \r\n    elif(choice==5):\r\n          mylist.insertLast()      \r\n    elif(choice==6):\r\n          mylist.deleteFirst()\r\n    elif(choice==7):\r\n          mylist.deleteMiddle()\r\n    elif(choice==8):\r\n          mylist.deleteLast()          \r\n    else:\r\n         break\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Program 1 # Implemenation of Circular linked list class Node: def __init__(self): self.data=None self.add=None class CircularLinkedList: def __init__(self): self.start=None self.count=0 # create list def createList(self): n=int(input(&#8220;Enter an element&#8221;)) self.start=Node() self.start.data=n self.start.add=self.start temp=self.start self.count=self.count+1 choice=input(&#8220;Want&#46;&#46;&#46;<\/p>\n","protected":false},"author":581,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32847],"tags":[32955,32853,32922,32923,32960,32961,32848,32959,32958],"class_list":["post-143283","post","type-post","status-publish","format-standard","hentry","category-dsa-python-tutorials","tag-circular-linked-list-in-dsa-python","tag-dsa-python","tag-dsa-python-practical","tag-dsa-python-program","tag-dsa-python-program-on-circular-linked-list","tag-dsa-python-program-on-insertion-and-deletion-in-circular-linked-list","tag-dsa-using-python","tag-insert-and-delete-in-circular-linked-list","tag-insertion-and-deletion-in-circular-linked-list-in-dsa-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Insertion and Deletion in Circular Linked List in DSA Python - DataFlair<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Insertion and Deletion in Circular Linked List in DSA Python - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Program 1 # Implemenation of Circular linked list class Node: def __init__(self): self.data=None self.add=None class CircularLinkedList: def __init__(self): self.start=None self.count=0 # create list def createList(self): n=int(input(&quot;Enter an element&quot;)) self.start=Node() self.start.data=n self.start.add=self.start temp=self.start self.count=self.count+1 choice=input(&quot;Want&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-02T04:49:49+00:00\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Insertion and Deletion in Circular Linked List in DSA Python - DataFlair","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/","og_locale":"en_US","og_type":"article","og_title":"Insertion and Deletion in Circular Linked List in DSA Python - DataFlair","og_description":"Program 1 # Implemenation of Circular linked list class Node: def __init__(self): self.data=None self.add=None class CircularLinkedList: def __init__(self): self.start=None self.count=0 # create list def createList(self): n=int(input(\"Enter an element\")) self.start=Node() self.start.data=n self.start.add=self.start temp=self.start self.count=self.count+1 choice=input(\"Want&#46;&#46;&#46;","og_url":"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2024-09-02T04:49:49+00:00","author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445"},"headline":"Insertion and Deletion in Circular Linked List in DSA Python","datePublished":"2024-09-02T04:49:49+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/"},"wordCount":12,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"keywords":["circular linked list in dsa python","dsa python","dsa python practical","dsa python program","dsa python program on circular linked list","dsa python program on insertion and deletion in circular linked list","dsa using python","insert and delete in circular linked list","insertion and deletion in circular linked list in dsa python"],"articleSection":["DSA using Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/","url":"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/","name":"Insertion and Deletion in Circular Linked List in DSA Python - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"datePublished":"2024-09-02T04:49:49+00:00","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/insertion-and-deletion-in-circular-linked-list-in-dsa-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"DSA using Python Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/dsa-python-tutorials\/"},{"@type":"ListItem","position":3,"name":"Insertion and Deletion in Circular Linked List in DSA Python"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"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.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam6\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/143283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/581"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=143283"}],"version-history":[{"count":2,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/143283\/revisions"}],"predecessor-version":[{"id":143285,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/143283\/revisions\/143285"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=143283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=143283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=143283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}