

{"id":135423,"date":"2024-05-25T16:20:59","date_gmt":"2024-05-25T10:50:59","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=135423"},"modified":"2024-05-25T16:20:59","modified_gmt":"2024-05-25T10:50:59","slug":"circular-linked-list-in-dsa-using-cpp-part-2","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/","title":{"rendered":"Circular Linked List in DSA using C++ Part &#8211; 2"},"content":{"rendered":"<h3>program 1<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\/\/ Circular Linked list\r\n\r\n#include&lt;iostream&gt;\r\n#include&lt;stdio.h&gt;\r\n#define clrscr() system(\"cls\")\r\nusing namespace std;\r\nclass Node\r\n{\r\n    public:\r\n    int data;\r\n    Node *add;\r\n};\r\nNode *start=NULL,*new1,*temp,*prv,*nxt,*last;\r\nint count=0;\r\nvoid create();\r\nvoid display();\r\nvoid insertFirst();\r\nvoid insertLast();\r\nvoid insertMiddle();\r\nvoid deleteFirst();\r\nvoid deleteMiddle();\r\nvoid deleteLast();\r\nvoid reverse();\r\nint main()\r\n{ \r\n    int choice;\r\ndo\r\n{\r\n     cout&lt;&lt;\"\\n---------------------Circular Linked List------------------\";\r\n     cout&lt;&lt;\"\\n 1 .Create\";\r\n     cout&lt;&lt;\"\\n 2. Display\";\r\n     cout&lt;&lt;\"\\n 3. Insert First\";\r\n     cout&lt;&lt;\"\\n 4. Insert Middle\";\r\n     cout&lt;&lt;\"\\n 5. Insert Last\";\r\n     cout&lt;&lt;\"\\n 6. Delete First\";\r\n     cout&lt;&lt;\"\\n 7. Delete Middle\";\r\n     cout&lt;&lt;\"\\n 8. Delete Last\";\r\n     cout&lt;&lt;\"\\n 9. Reverse\";\r\n     cout&lt;&lt;\"\\n 10.Exit\";\r\n     cout&lt;&lt;\"\\n------------------------------------------------------------\";\r\n     cout&lt;&lt;\"\\nEnter your choice\";\r\n     cin&gt;&gt;choice;\r\n       switch(choice)\r\n     {\r\n        case 1: create();break;\r\n        case 2: display();break;\r\n        case 3: insertFirst();break;\r\n        case 4: insertMiddle();break;\r\n        case 5: insertLast();break;\r\n        case 6: deleteFirst();break;\r\n        case 7: deleteMiddle();break;\r\n        case 8: deleteLast();break;\r\n        case 9: reverse();break;\r\n        case 10:break;\r\n     }\r\n   }while(choice!=10);  \r\n   return 0;\r\n}\r\nvoid create()\r\n{\r\n        int n;\r\n        char ch;\r\n        cout&lt;&lt;\"Enter an element\";\r\n        cin&gt;&gt;n;\r\n        start=new Node;\r\n        start-&gt;data=n;\r\n        start-&gt;add=NULL;\r\n        temp=start;\r\n        temp-&gt;add=start;\r\n        count++;\r\n        cout&lt;&lt;\"Want to continue\";\r\n         cin&gt;&gt;ch;\r\n         while(ch=='y' || ch=='Y')\r\n         {\r\n              count++;\r\n             cout&lt;&lt;\"Enter next element\";\r\n             cin&gt;&gt;n;\r\n              new1=new Node;\r\n              new1-&gt;data=n;\r\n              new1-&gt;add=NULL;\r\n              temp-&gt;add=new1;\r\n              new1-&gt;add=start;\r\n              temp=temp-&gt;add;\r\n              cout&lt;&lt;\"Want to continue\";\r\n              cin&gt;&gt;ch;\r\n         }\r\n\r\n}\r\nvoid display()\r\n{\r\n     if(start==NULL)\r\n       cout&lt;&lt;\"*******List not found**********\";\r\n       else\r\n       {\r\n           temp=start;\r\n          do\r\n          {\r\n                cout&lt;&lt;temp-&gt;data&lt;&lt;\"  \";\r\n                temp=temp-&gt;add;\r\n          }while(temp!=start);\r\n          cout&lt;&lt;\"\\n Total Node in List: \"&lt;&lt;count;\r\n       }\r\n}\r\nvoid insertFirst()\r\n{\r\n             int n;\r\n             if(start==NULL)\r\n       cout&lt;&lt;\"*******List not found**********\";\r\n       else\r\n       {\r\n             count++;\r\n             cout&lt;&lt;\"Enter next element\";\r\n             cin&gt;&gt;n;\r\n              new1=new Node;\r\n              new1-&gt;data=n;\r\n              new1-&gt;add=NULL;\r\n              last=start;\r\n              while(last-&gt;add!=start)\r\n              {\r\n                   last=last-&gt;add;\r\n              }\r\n              new1-&gt;add=start;\r\n              start=new1;\r\n              last-&gt;add=start;\r\n       }\r\n}\r\nvoid insertMiddle()\r\n{\r\n    int n,pos,i=1;\r\n    if(start==NULL)\r\n      cout&lt;&lt;\"\\n List not found\";\r\n    else\r\n    {\r\n         cout&lt;&lt;\"\\n Enter an element for insert\";\r\n         cin&gt;&gt;n;\r\n         new1= new Node;\r\n         new1-&gt;data=n;\r\n         new1-&gt;add=NULL;\r\n         cout&lt;&lt;\"Enter position for insert\";\r\n         cin&gt;&gt;pos;\r\n         if(pos&gt;count)\r\n         {\r\n            cout&lt;&lt;\"\\nInvalid poistion\";\r\n         }\r\n         else\r\n         {\r\n               nxt=start;\r\n               while(i&lt;pos)\r\n               {\r\n                   prv=nxt;\r\n                   nxt=nxt-&gt;add;\r\n                   i++;\r\n               }\r\n               prv-&gt;add=new1;\r\n               new1-&gt;add=nxt;\r\n               count++;\r\n         }\r\n    }   \r\n    \r\n}\r\n\r\n\r\n\r\nvoid insertLast()\r\n{\r\n     int n;\r\n             if(start==NULL)\r\n       cout&lt;&lt;\"*******List not found**********\";\r\n       else\r\n       {\r\n             count++;\r\n             cout&lt;&lt;\"Enter next element\";\r\n             cin&gt;&gt;n;\r\n              new1=new Node;\r\n              new1-&gt;data=n;\r\n              new1-&gt;add=NULL;\r\n              last=start;\r\n              while(last-&gt;add!=start)\r\n              {\r\n                   last=last-&gt;add;\r\n              }\r\n              last-&gt;add=new1;\r\n              new1-&gt;add=start;\r\n       }    \r\n}\r\nvoid deleteFirst()\r\n{\r\n      if(start==NULL)\r\n       cout&lt;&lt;\"*******List not found**********\";\r\n       else\r\n       {\r\n            last=start;\r\n            while(last-&gt;add!=start)\r\n            {\r\n                last=last-&gt;add;\r\n            }\r\n            temp=start;\r\n            cout&lt;&lt;\"deleted node is \"&lt;&lt;temp-&gt;data;\r\n            start=start-&gt;add;\r\n            last-&gt;add=start;\r\n            delete temp;\r\n            count--;\r\n       }\r\n}\r\nvoid deleteMiddle()\r\n{\r\n    int pos,i=1; \r\n   if(start==NULL)\r\n      cout&lt;&lt;\"\\nList not found\";\r\n    else\r\n    {\r\n         cout&lt;&lt;\"\\n Enter Position of node\";\r\n         cin&gt;&gt;pos;\r\n        if(pos&gt;count)\r\n          cout&lt;&lt;\"\\n Invalid poistion\";\r\n        else\r\n       {    \r\n         temp=start;\r\n         while(i&lt;pos) \r\n         {\r\n              prv=temp;\r\n              temp=temp-&gt;add;\r\n              i++;   \r\n         }\r\n          nxt=temp-&gt;add;\r\n          prv-&gt;add=nxt;\r\n          cout&lt;&lt;\"\\nDeleted node is: \" &lt;&lt;temp-&gt;data;\r\n          delete temp; \r\n          count--;\r\n      }  \r\n    }\r\n}\r\nvoid deleteLast()\r\n{\r\n      if(start==NULL)\r\n       cout&lt;&lt;\"*******List not found**********\";\r\n       else\r\n       {\r\n              last=start;\r\n              while(last-&gt;add!=start)\r\n              {\r\n                  prv=last;\r\n                  last=last-&gt;add;\r\n              }\r\n              prv-&gt;add=start;\r\n              cout&lt;&lt;\"Deleted node is \"&lt;&lt;last-&gt;data;\r\n              delete last;\r\n              count--;\r\n       }\r\n}\r\nvoid reverse()\r\n{\r\n       temp=start;\r\n       while(temp-&gt;add!=start)\r\n       {\r\n          temp=temp-&gt;add;\r\n       }\r\n       cout&lt;&lt;\"Last Node is \"&lt;&lt; temp-&gt;data;\r\n       temp=temp-&gt;add;\r\n       cout&lt;&lt;\"\\nFirst Node is \"&lt;&lt; temp-&gt;data;\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>program 1 \/\/ Circular Linked list #include&lt;iostream&gt; #include&lt;stdio.h&gt; #define clrscr() system(&#8220;cls&#8221;) using namespace std; class Node { public: int data; Node *add; }; Node *start=NULL,*new1,*temp,*prv,*nxt,*last; int count=0; void create(); void display(); void insertFirst(); void&#46;&#46;&#46;<\/p>\n","protected":false},"author":86671,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31449],"tags":[2517,32276,32275,32265,32249,32251,32250],"class_list":["post-135423","post","type-post","status-publish","format-standard","hentry","category-dsa-cpp-tutorials","tag-circular-linked-list","tag-circular-linked-list-in-data-structures-with-c","tag-circular-linked-list-in-dsa-using-c","tag-data-structures-using-c","tag-dsa-using-c","tag-dsa-using-c-practical","tag-dsa-using-c-program"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Circular Linked List in DSA using C++ Part - 2 - 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\/circular-linked-list-in-dsa-using-cpp-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Circular Linked List in DSA using C++ Part - 2 - DataFlair\" \/>\n<meta property=\"og:description\" content=\"program 1 \/\/ Circular Linked list #include&lt;iostream&gt; #include&lt;stdio.h&gt; #define clrscr() system(&quot;cls&quot;) using namespace std; class Node { public: int data; Node *add; }; Node *start=NULL,*new1,*temp,*prv,*nxt,*last; int count=0; void create(); void display(); void insertFirst(); void&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/\" \/>\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-05-25T10:50:59+00:00\" \/>\n<meta name=\"author\" content=\"TechVidvan 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=\"TechVidvan 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":"Circular Linked List in DSA using C++ Part - 2 - 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\/circular-linked-list-in-dsa-using-cpp-part-2\/","og_locale":"en_US","og_type":"article","og_title":"Circular Linked List in DSA using C++ Part - 2 - DataFlair","og_description":"program 1 \/\/ Circular Linked list #include&lt;iostream&gt; #include&lt;stdio.h&gt; #define clrscr() system(\"cls\") using namespace std; class Node { public: int data; Node *add; }; Node *start=NULL,*new1,*temp,*prv,*nxt,*last; int count=0; void create(); void display(); void insertFirst(); void&#46;&#46;&#46;","og_url":"https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2024-05-25T10:50:59+00:00","author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/0e594f928e31fc96628ac40f6ae74f49"},"headline":"Circular Linked List in DSA using C++ Part &#8211; 2","datePublished":"2024-05-25T10:50:59+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/"},"wordCount":11,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"keywords":["Circular Linked List","circular linked list in data structures with c++","circular linked list in dsa using c++","data structures using c++","dsa using c++","dsa using c++ practical","dsa using c++ program"],"articleSection":["DSA using C++ Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/","url":"https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/","name":"Circular Linked List in DSA using C++ Part - 2 - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"datePublished":"2024-05-25T10:50:59+00:00","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/circular-linked-list-in-dsa-using-cpp-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"DSA using C++ Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/dsa-cpp-tutorials\/"},{"@type":"ListItem","position":3,"name":"Circular Linked List in DSA using C++ Part &#8211; 2"}]},{"@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\/0e594f928e31fc96628ac40f6ae74f49","name":"TechVidvan Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c89190da3d4010c71ba476b618ab10fdc2335c82cdfa0ad5002d98d0f2473444?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c89190da3d4010c71ba476b618ab10fdc2335c82cdfa0ad5002d98d0f2473444?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c89190da3d4010c71ba476b618ab10fdc2335c82cdfa0ad5002d98d0f2473444?s=96&d=mm&r=g","caption":"TechVidvan Team"},"description":"TechVidvan Team provides high-quality content &amp; courses on AI, ML, Data Science, Data Engineering, Data Analytics, programming, Python, DSA, Android, Flutter, full stack web dev, MERN, and many latest technology.","url":"https:\/\/data-flair.training\/blogs\/author\/test001\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/135423","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\/86671"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=135423"}],"version-history":[{"count":4,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/135423\/revisions"}],"predecessor-version":[{"id":142566,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/135423\/revisions\/142566"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=135423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=135423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=135423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}