{"id":9156,"date":"2022-07-19T09:54:49","date_gmt":"2022-07-19T09:54:49","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=9156"},"modified":"2022-12-14T10:42:00","modified_gmt":"2022-12-14T10:42:00","slug":"circular-queue-set-2-circular-linked-list-implementation","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/","title":{"rendered":"Circular Queue | Set 2 (Circular Linked List Implementation)"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg\" alt=\"\" \/><\/p>\n<h3>Circular Queue<\/h3>\n<p>It is a <a href=\"https:\/\/prepbytes.com\/blog\/stacks\/difference-between-stack-and-queue-data-structures\/\" title=\"linear data structure\">linear data structure<\/a> that works on the principle of <a href=\"https:\/\/prepbytes.com\/blog\/queues\/different-types-of-queues-and-its-applications\/\" title=\"FIFO (First in First out)\">FIFO (First in First out)<\/a>. In this type of queue element can be added in any position or can be deleted from any position in the array but we have to maintain the pointers which will point towards the front and rear end of the queue. In this queue, the rear end can be at any point in the array.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223825995-Image-01.png\" alt=\"\" \/><\/p>\n<h3>Operations on Circular Queue<\/h3>\n<ul>\n<li>\n<p><strong>Front:<\/strong> This function returns the front item from the queue.<\/p>\n<\/li>\n<li>\n<p><strong>Rear:<\/strong> This function returns the last item from the queue.<\/p>\n<\/li>\n<li>\n<p><strong>Enqueue(item):<\/strong> This function is used to insert the item into the circular queue. In this type of queue, we always insert the new item at the Rear position.<\/p>\n<ol>\n<li>Create a new node and insert the value of the item in  it.<\/li>\n<li>Check if front==NULL, if this condition is true then front = rear = (new node).<\/li>\n<li>If the above condition is false then rear = (new node) and rear node always contains the address of the front node.<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><strong>Dequeue():<\/strong> This function is used to remove the item from the circular queue. In this type of queue, the item present on the front position will be deleted.<\/p>\n<ol>\n<li>Check whether the queue is empty or not i.e. front == NULL.<\/li>\n<li>If the above condition is true then the display queue is empty. <\/li>\n<li>If the above condition is false then Check if (front == rear) if this condition is true then set front = rear = NULL else move the front pointer forward in the queue, update address of front in rear node and return the element.<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223843069-Image-02.png\" alt=\"\" \/><\/p>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_9157 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_9157 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_9157 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_9157 .wpsm_nav-tabs > li.active > a, #tab_container_9157 .wpsm_nav-tabs > li.active > a:hover, #tab_container_9157 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_9157 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_9157 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_9157 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_9157 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_9157 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_9157 .wpsm_nav-tabs > li > a:hover , #tab_container_9157 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_9157 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_9157 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_9157 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_9157 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_9157 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_9157 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_9157 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_9157 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_9157 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_9157 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_9157 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_9157\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_9157\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_9157_1\" aria-controls=\"tabs_desc_9157_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_9157_2\" aria-controls=\"tabs_desc_9157_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_9157_3\" aria-controls=\"tabs_desc_9157_3\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Python<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_9157\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_9157_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include &lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n\r\nstruct Node {\r\n\tint data;\r\n\tstruct Node* link;\r\n};\r\n\r\nstruct Queue {\r\n\tstruct Node *front, *rear;\r\n};\r\n\r\nvoid enQueue(Queue* q, int value)\r\n{\r\n\tstruct Node* temp = new Node;\r\n\ttemp-&gt;data = value;\r\n\tif (q-&gt;front == NULL)\r\n\t\tq-&gt;front = temp;\r\n\telse\r\n\t\tq-&gt;rear-&gt;link = temp;\r\n\r\n\tq-&gt;rear = temp;\r\n\tq-&gt;rear-&gt;link = q-&gt;front;\r\n}\r\n\r\nint deQueue(Queue* q)\r\n{\r\n\tif (q-&gt;front == NULL) {\r\n\t\tprintf(&quot;Queue is empty&quot;);\r\n\t\treturn INT_MIN;\r\n\t}\r\n\r\n\tint value; \r\n\tif (q-&gt;front == q-&gt;rear) {\r\n\t\tvalue = q-&gt;front-&gt;data;\r\n\t\tfree(q-&gt;front);\r\n\t\tq-&gt;front = NULL;\r\n\t\tq-&gt;rear = NULL;\r\n\t}\r\n\telse \r\n\t{\r\n\t\tstruct Node* temp = q-&gt;front;\r\n\t\tvalue = temp-&gt;data;\r\n\t\tq-&gt;front = q-&gt;front-&gt;link;\r\n\t\tq-&gt;rear-&gt;link = q-&gt;front;\r\n\t\tfree(temp);\r\n\t}\r\n\r\n\treturn value;\r\n}\r\n\r\nvoid displayQueue(struct Queue* q)\r\n{\r\n\tstruct Node* temp = q-&gt;front;\r\n\tprintf(&quot;&#92;nElements in Circular Queue are: &quot;);\r\n\twhile (temp-&gt;link != q-&gt;front) {\r\n\t\tprintf(&quot;%d &quot;, temp-&gt;data);\r\n\t\ttemp = temp-&gt;link;\r\n\t}\r\n\tprintf(&quot;%d&quot;, temp-&gt;data);\r\n}\r\n\r\nint main()\r\n{\r\n\tQueue* q = new Queue;\r\n\tq-&gt;front = q-&gt;rear = NULL;\r\n\r\n\tenQueue(q, 14);\r\n\tenQueue(q, 24);\r\n\tenQueue(q, 26);\r\n\r\n\tdisplayQueue(q);\r\n\r\n\tprintf(&quot;&#92;nDeleted value = %d&quot;, deQueue(q));\r\n\tprintf(&quot;&#92;nDeleted value = %d&quot;, deQueue(q));\r\n\r\n\tdisplayQueue(q);\r\n\r\n\tenQueue(q, 9);\r\n\tenQueue(q, 20);\r\n\tdisplayQueue(q);\r\n\r\n\treturn 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_9157_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nimport java.util.*;\r\n\r\nclass Solution {\r\n\r\n\tstatic class Node {\r\n\t\tint data;\r\n\t\tNode link;\r\n\t}\r\n\r\n\tstatic class Queue {\r\n\t\tNode front, rear;\r\n\t}\r\n\r\n\tstatic void enQueue(Queue q, int value)\r\n\t{\r\n\t\tNode temp = new Node();\r\n\t\ttemp.data = value;\r\n\t\tif (q.front == null)\r\n\t\t\tq.front = temp;\r\n\t\telse\r\n\t\t\tq.rear.link = temp;\r\n\r\n\t\tq.rear = temp;\r\n\t\tq.rear.link = q.front;\r\n\t}\r\n\r\n\tstatic int deQueue(Queue q)\r\n\t{\r\n\t\tif (q.front == null) {\r\n\t\t\tSystem.out.printf(&quot;Queue is empty&quot;);\r\n\t\t\treturn Integer.MIN_VALUE;\r\n\t\t}\r\n\r\n\t\tint value; \r\n\t\tif (q.front == q.rear) {\r\n\t\t\tvalue = q.front.data;\r\n\t\t\tq.front = null;\r\n\t\t\tq.rear = null;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tNode temp = q.front;\r\n\t\t\tvalue = temp.data;\r\n\t\t\tq.front = q.front.link;\r\n\t\t\tq.rear.link = q.front;\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\tstatic void displayQueue(Queue q)\r\n\t{\r\n\t\tNode temp = q.front;\r\n\t\tSystem.out.printf(&quot;&#92;nElements in Circular Queue are: &quot;);\r\n\t\twhile (temp.link != q.front) {\r\n\t\t\tSystem.out.printf(&quot;%d &quot;, temp.data);\r\n\t\t\ttemp = temp.link;\r\n\t\t}\r\n\t\tSystem.out.printf(&quot;%d&quot;, temp.data);\r\n\t}\r\n\r\n\tpublic static void main(String args[])\r\n\t{\r\n\t\tQueue q = new Queue();\r\n\t\tq.front = q.rear = null;\r\n\r\n\t\tenQueue(q, 14);\r\n\t\tenQueue(q, 24);\r\n\t\tenQueue(q, 26);\r\n\r\n\t\tdisplayQueue(q);\r\n\r\n\t\tSystem.out.printf(&quot;&#92;nDeleted value = %d&quot;, deQueue(q));\r\n\t\tSystem.out.printf(&quot;&#92;nDeleted value = %d&quot;, deQueue(q));\r\n\r\n\t\tdisplayQueue(q);\r\n\r\n\t\tenQueue(q, 9);\r\n\t\tenQueue(q, 20);\r\n\t\tdisplayQueue(q);\r\n\t}\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_9157_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nclass Node:\r\n\tdef __init__(self):\r\n\t\tself.data = None\r\n\t\tself.link = None\r\n\r\nclass Queue:\r\n\tdef __init__(self):\r\n\t\tfront = None\r\n\t\trear = None\r\n\r\ndef enQueue(q, value):\r\n\ttemp = Node()\r\n\ttemp.data = value\r\n\tif (q.front == None):\r\n\t\tq.front = temp\r\n\telse:\r\n\t\tq.rear.link = temp\r\n\r\n\tq.rear = temp\r\n\tq.rear.link = q.front\r\n\r\ndef deQueue(q):\r\n\tif (q.front == None):\r\n\t\tprint(\"Queue is empty\")\r\n\t\treturn -999999999999\r\n\r\n\tvalue = None \r\n\tif (q.front == q.rear):\r\n\t\tvalue = q.front.data\r\n\t\tq.front = None\r\n\t\tq.rear = None\r\n\telse: \r\n\t\ttemp = q.front\r\n\t\tvalue = temp.data\r\n\t\tq.front = q.front.link\r\n\t\tq.rear.link = q.front\r\n\r\n\treturn value\r\n\r\n\r\ndef displayQueue(q):\r\n\ttemp = q.front\r\n\tprint(\"Elements in Circular Queue are: \",\r\n\t\t\t\t\t\t\t\tend = \" \")\r\n\twhile (temp.link != q.front):\r\n\t\tprint(temp.data, end = \" \")\r\n\t\ttemp = temp.link\r\n\tprint(temp.data)\r\n\r\nif __name__ == '__main__':\r\n\r\n\r\n\tq = Queue()\r\n\tq.front = q.rear = None\r\n\r\n\tenQueue(q, 14)\r\n\tenQueue(q, 24)\r\n\tenQueue(q, 26)\r\n\r\n\tdisplayQueue(q)\r\n\r\n\tprint(\"Deleted value = \", deQueue(q))\r\n\tprint(\"Deleted value = \", deQueue(q))\r\n\r\n\tdisplayQueue(q)\r\n\r\n\tenQueue(q, 9)\r\n\tenQueue(q, 20)\r\n\tdisplayQueue(q)\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_9157 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_9157 a\"),jQuery(\"#tab-content_9157\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t\n<p><strong>Time Complexity:<\/strong> The time complexity of Enqueue() and Dequeue() functions will be O(1) as there is no loop in any of the functions.<\/p>\n<p><strong><em>Note:<\/em><\/strong> In case of linked list implementation, a queue is easily implemented without being circular. However, in case of array implementation, we need a circular queue for saving the space.<\/p>\n<p>This article tried to discuss the concept of <strong>Circular Queue, Circular Linked List Implementation<\/strong>. Hope this blog helps you understand the concept. To practice problems you can check out <a href=\"#\"><\/a> at <a href=\"https:\/\/www.prepbytes.com\/\"> Prepbytes<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Circular Queue It is a linear data structure that works on the principle of FIFO (First in First out). In this type of queue element can be added in any position or can be deleted from any position in the array but we have to maintain the pointers which will point towards the front and [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[125],"tags":[],"class_list":["post-9156","post","type-post","status-publish","format-standard","hentry","category-linked-list"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Operating System Process Scheduler PCBS and Queueing<\/title>\n<meta name=\"description\" content=\"PCBs is generally the operating system maintains a separate queue for each process state and PCBs of all processes in the same execution state are placed in the same queue.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Operating System Process Scheduler PCBS and Queueing\" \/>\n<meta property=\"og:description\" content=\"PCBs is generally the operating system maintains a separate queue for each process state and PCBs of all processes in the same execution state are placed in the same queue.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-19T09:54:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-14T10:42:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Circular Queue | Set 2 (Circular Linked List Implementation)\",\"datePublished\":\"2022-07-19T09:54:49+00:00\",\"dateModified\":\"2022-12-14T10:42:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/\"},\"wordCount\":362,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg\",\"articleSection\":[\"Linked list articles\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/\",\"name\":\"Operating System Process Scheduler PCBS and Queueing\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg\",\"datePublished\":\"2022-07-19T09:54:49+00:00\",\"dateModified\":\"2022-12-14T10:42:00+00:00\",\"description\":\"PCBs is generally the operating system maintains a separate queue for each process state and PCBs of all processes in the same execution state are placed in the same queue.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linked list articles\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/linked-list\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Circular Queue | Set 2 (Circular Linked List Implementation)\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Operating System Process Scheduler PCBS and Queueing","description":"PCBs is generally the operating system maintains a separate queue for each process state and PCBs of all processes in the same execution state are placed in the same queue.","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:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/","og_locale":"en_US","og_type":"article","og_title":"Operating System Process Scheduler PCBS and Queueing","og_description":"PCBs is generally the operating system maintains a separate queue for each process state and PCBs of all processes in the same execution state are placed in the same queue.","og_url":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2022-07-19T09:54:49+00:00","article_modified_time":"2022-12-14T10:42:00+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Circular Queue | Set 2 (Circular Linked List Implementation)","datePublished":"2022-07-19T09:54:49+00:00","dateModified":"2022-12-14T10:42:00+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/"},"wordCount":362,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg","articleSection":["Linked list articles"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/","url":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/","name":"Operating System Process Scheduler PCBS and Queueing","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg","datePublished":"2022-07-19T09:54:49+00:00","dateModified":"2022-12-14T10:42:00+00:00","description":"PCBs is generally the operating system maintains a separate queue for each process state and PCBs of all processes in the same execution state are placed in the same queue.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1658223808689-Article.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/circular-queue-set-2-circular-linked-list-implementation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Linked list articles","item":"https:\/\/prepbytes.com\/blog\/category\/linked-list\/"},{"@type":"ListItem","position":3,"name":"Circular Queue | Set 2 (Circular Linked List Implementation)"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/9156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=9156"}],"version-history":[{"count":3,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/9156\/revisions"}],"predecessor-version":[{"id":9427,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/9156\/revisions\/9427"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=9156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=9156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=9156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}