{"id":3895,"date":"2021-08-19T12:13:32","date_gmt":"2021-08-19T12:13:32","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=3895"},"modified":"2022-12-13T11:38:07","modified_gmt":"2022-12-13T11:38:07","slug":"python-stack-using-a-doubly-linked-list","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/","title":{"rendered":"Python Stack using a Doubly Linked List"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png\" alt=\"\" \/><\/p>\n<p>In this blog, our aim is to build a stack using doubly linked list in Python. Python is a vast language which is used for multi purposes i.e. For web scraping, web automation, web development, game development, machine learning and data analysis and lots more. Building a stack using doubly linked list will enhance your skills in data structures like stack, linked list and using them to perform certain tasks. Let\u2019s discuss our topic i.e. \u201cTo Build A Stack Using Doubly Linked List In Python\u201d.<\/p>\n<h2>How To Build A Stack Using Doubly Linked List<\/h2>\n<p>In this problem, we have to implement a stack, with the help of a doubly linked list.<\/p>\n<p><strong>Input:<\/strong> <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/08\/input-6.png\" alt=\"\" \/><\/p>\n<p><strong>Output<\/strong><br \/>\nFor the input 4 3 2 1 our doubly linked list, which will have all functionalities of a stack, will be<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/08\/double-linked-list-1.png\" alt=\"\" \/><\/p>\n<p>and 1 will be the head of the linked list.<\/p>\n<p>Let\u2019s think about how a stack works.<br \/>\nIt follows the LIFO(last in first out) principle. This means the element inserted at the last will be accessible to us.<\/p>\n<p>Now, lets recall what a doubly-linked list is. A doubly linked list has two pointers for every node:<\/p>\n<ul>\n<li>prev, which points to the previous node in the linked list.<\/li>\n<li>next, which points to the node next to the current node in the linked list.<\/li>\n<\/ul>\n<p>If we can amend the inserting new node operation in doubly linked list such a way that the current inserted element is always at the head of the linked list and is the first element accessible to us if we want to access an element from linked list, then we can see that our linked list is mimicking the behavior of stack.<\/p>\n<p>Similarly, we will try to think of other operations such as pop(), top(), etc of stack and how we can implement these operations using doubly linked list.<\/p>\n<p>If our input is 4 3 2 1, then our doubly linked list, which will have all functionalities of a stack, will be<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/08\/double-linked-list-1.png\" alt=\"\" \/><\/p>\n<p>Where the head will be pointing to 1 in the linked list.<\/p>\n<p>If input is 5 6 7 8, the the doubly linked list having all the functionalities of the stack will be<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/08\/double-linked-list2-2.png\" alt=\"\" \/><\/p>\n<p>Head will be pointing to 8.<\/p>\n<p>Let us have a glance at the algorithm.<\/p>\n<h2>Algorithm To Build A Stack Using Doubly Linked List<\/h2>\n<p>There are mainly 6 functions of a stack. We will learn how each function approaches one by one. <\/p>\n<p><strong>push()<\/strong><\/p>\n<p>In the push() function, we push the element into the stack, and make it the top. <\/p>\n<p>So, to do the same with a doubly-linked list, we will check if the list is Null or not:<\/p>\n<ul>\n<li>If it is Null, then make the new data the head. <\/li>\n<li>If the list is not empty, then make the prev of head point to the new node, the next of new node point to the head and the prev of new node point to Null. <\/li>\n<\/ul>\n<p>In the end, the new node will become the head.<\/p>\n<p><strong>pop()<\/strong><\/p>\n<p>In the pop() function, we pop the topmost element of the stack and print it. <\/p>\n<p>So, to do the same with a doubly-linked list, first, we will check if the list is Null or not:<\/p>\n<ul>\n<li>If it is Null, then return None. <\/li>\n<li>If there is only one node in the list, then remove the head, and return None. <\/li>\n<li>If both the base cases fail, we will store the head.data . Now, we will increment the head, and make the prev of head point to Null. <\/li>\n<\/ul>\n<p>In the end, we will return the head.data that we stored.<\/p>\n<p><strong>top()<\/strong><\/p>\n<p>In the top() function, we have to return the top element of the stack. <\/p>\n<p>So, to do the same with a doubly-linked list, we will simply return the head.data.<\/p>\n<p><strong>size()<\/strong><\/p>\n<p>In the size() function, we have to return the size of the stack. <\/p>\n<p>So, to do the same with a doubly-linked list, we will simply create a counter and initialize it with 0. Then we will traverse through the list and increment the counter by 1 till we reach the end. <\/p>\n<p>In the end, we will return the counter, as that will be the size of the list.<\/p>\n<p><strong>isEmpty()<\/strong><\/p>\n<p>In the isEmpty() function, we have to return true if the stack is empty, else false. <\/p>\n<p>So, to do the same with a doubly-linked list:<\/p>\n<ul>\n<li>If the head is Null, we will return true.<\/li>\n<li>Else we will return false.<\/li>\n<\/ul>\n<p><strong>printstack()<\/strong><\/p>\n<p>In the Printstack() function, we have to print the stack. <\/p>\n<p>So, to do the same with a doubly-linked list, we will simply do a list traversal and print the elements one by one.<\/p>\n<h3>Dry Run To Build A Stack Using Doubly Linked List<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/08\/Python-Stack-using-a-Doubly-Linked-List-image-1.png\" alt=\"\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/08\/Python-Stack-using-a-Doubly-Linked-List-image-2.png\" alt=\"\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/08\/Python-Stack-using-a-Doubly-Linked-List-image-3.png\" alt=\"\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/08\/Python-Stack-using-a-Doubly-Linked-List-image-4.png\" alt=\"\" \/><\/p>\n<h2>Code Implementation To Build A Stack Using Doubly Linked List<\/h2>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_3897 {\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_3897 .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_3897 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_3897 .wpsm_nav-tabs > li.active > a, #tab_container_3897 .wpsm_nav-tabs > li.active > a:hover, #tab_container_3897 .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_3897 .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_3897 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_3897 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_3897 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_3897 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_3897 .wpsm_nav-tabs > li > a:hover , #tab_container_3897 .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_3897 .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_3897 .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_3897 .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_3897 .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_3897 .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_3897 .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_3897 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_3897 .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_3897 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_3897 .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_3897 .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_3897\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_3897\">\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_3897_1\" aria-controls=\"tabs_desc_3897_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>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_3897\">\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_3897_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"python\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nclass Node:\r\n  \r\n\r\n    def _init_(self, data):\r\n        self.data = data \r\n        self.next = None \r\n        self.prev = None        \r\n          \r\n\r\nclass Stack:\r\n   \r\n    def _init_(self):\r\n        self.head = None\r\n          \r\n\r\n    def push(self, data):\r\n  \r\n        if self.head is None:\r\n            self.head = Node(data)\r\n        else:\r\n            new_node = Node(data)\r\n            self.head.prev = new_node\r\n            new_node.next = self.head\r\n            new_node.prev = None\r\n            self.head = new_node\r\n              \r\n\r\n    def pop(self):\r\n  \r\n        if self.head is None:\r\n            return None\r\n        elif self.head.next is None:\r\n            temp = self.head.data\r\n            self.head = None\r\n            return temp\r\n        else:\r\n            temp = self.head.data\r\n            self.head = self.head.next\r\n            self.head.prev = None\r\n            return temp\r\n  \r\n\r\n    def top(self):\r\n  \r\n        return self.head.data\r\n  \r\n\r\n    def size(self):\r\n  \r\n        temp = self.head\r\n        count = 0\r\n        while temp is not None:\r\n            count = count + 1\r\n            temp = temp.next\r\n        return count\r\n\r\n\r\n    def isEmpty(self):\r\n  \r\n        if self.head is None:\r\n           return True\r\n        else:\r\n           return False\r\n              \r\n\r\n    def printstack(self):\r\n          \r\n        print(&quot;stack elements are:&quot;)\r\n        temp = self.head\r\n        while temp is not None:\r\n            print(temp.data, end =&quot;-&gt;&quot;)\r\n            temp = temp.next           \r\n          \r\n\r\nif _name=='_main_': \r\n  \r\n\r\n  stack = Stack()\r\n  \r\n\r\n  print(&quot;Stack operations using Doubly LinkedList&quot;)\r\n  stack.push(4)\r\n  stack.push(3)\r\n  stack.push(2)\r\n  stack.push(1)\r\n  stack.printstack()\r\n  \r\n  print(&quot;&#92;nTop element is &quot;, stack.top())\r\n  \r\n  print(&quot;Size of the stack is &quot;, stack.size())\r\n  \r\n  stack.pop()\r\n  stack.pop()\r\n    \r\n  stack.printstack()\r\n\r\n  print(&quot;&#92;nstack is empty:&quot;, stack.isEmpty())\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\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_3897 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_3897 a\"),jQuery(\"#tab-content_3897\"));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<pre><code>Output\nStack operations using Doubly LinkedList\nStack elements are: 1->2->3->4->\nTop element is  1\nSize of the stack is 4\nStack elements are: 3->4->\nStack is empty: False<\/code><\/pre>\n<p><strong>Time Complexity To Build A Stack Using Doubly Linked List:<\/strong> O(n), as list traversal is needed.<\/p>\n<p>So, in this article, we have tried to explain the most efficient approach to implement a stack using doubly linked list in python. This is a must-do problem as it requires the basic concepts of the doubly linked list. If you want to solve more questions on Linked List, which are curated by our expert mentors at PrepBytes, you can follow this link <a href=\"https:\/\/mycode.prepbytes.com\/interview-coding\/practice\/linked-list\">Linked List<\/a>.<\/p>\n<h2>FAQ<\/h2>\n<p><strong>1. Can you implement a stack using a doubly linked list?<\/strong><br \/>\nStack is a data structure that follows the LIFO technique and can be implemented using arrays or linked list data structures. Doubly linked list has the advantage that it can also traverse the previous node with the help of \u201cprevious\u201d pointer.<\/p>\n<p><strong>2. What is the disadvantage of doubly linked lists?<\/strong><br \/>\nIt uses extra memory when compared to the array and singly linked list. Since elements in memory are stored randomly, therefore the elements are accessed sequentially no direct access is allowed.<\/p>\n<p><strong>3. Which companies asked the implementation for stack using doubly linked list?<\/strong><br \/>\nSamsung, Josh Technologies, Deloitte, and Zscaler recently asked the implementation for stack using doubly linked list in their interviews.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog, our aim is to build a stack using doubly linked list in Python. Python is a vast language which is used for multi purposes i.e. For web scraping, web automation, web development, game development, machine learning and data analysis and lots more. Building a stack using doubly linked list will enhance your [&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-3895","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>Learn Python Stack using a Doubly Linked List<\/title>\n<meta name=\"description\" content=\"The doubly linked list is one of the most important concepts in data structures to learn while preparing for interviews. Having a good grasp of doubly Linked Lists can be a huge plus point in a coding interview.\" \/>\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\/python-stack-using-a-doubly-linked-list\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learn Python Stack using a Doubly Linked List\" \/>\n<meta property=\"og:description\" content=\"The doubly linked list is one of the most important concepts in data structures to learn while preparing for interviews. Having a good grasp of doubly Linked Lists can be a huge plus point in a coding interview.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/\" \/>\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=\"2021-08-19T12:13:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-13T11:38:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png\" \/>\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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Python Stack using a Doubly Linked List\",\"datePublished\":\"2021-08-19T12:13:32+00:00\",\"dateModified\":\"2022-12-13T11:38:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/\"},\"wordCount\":986,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png\",\"articleSection\":[\"Linked list articles\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/\",\"name\":\"Learn Python Stack using a Doubly Linked List\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png\",\"datePublished\":\"2021-08-19T12:13:32+00:00\",\"dateModified\":\"2022-12-13T11:38:07+00:00\",\"description\":\"The doubly linked list is one of the most important concepts in data structures to learn while preparing for interviews. Having a good grasp of doubly Linked Lists can be a huge plus point in a coding interview.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#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\":\"Python Stack using a Doubly Linked List\"}]},{\"@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":"Learn Python Stack using a Doubly Linked List","description":"The doubly linked list is one of the most important concepts in data structures to learn while preparing for interviews. Having a good grasp of doubly Linked Lists can be a huge plus point in a coding interview.","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\/python-stack-using-a-doubly-linked-list\/","og_locale":"en_US","og_type":"article","og_title":"Learn Python Stack using a Doubly Linked List","og_description":"The doubly linked list is one of the most important concepts in data structures to learn while preparing for interviews. Having a good grasp of doubly Linked Lists can be a huge plus point in a coding interview.","og_url":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2021-08-19T12:13:32+00:00","article_modified_time":"2022-12-13T11:38:07+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Python Stack using a Doubly Linked List","datePublished":"2021-08-19T12:13:32+00:00","dateModified":"2022-12-13T11:38:07+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/"},"wordCount":986,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png","articleSection":["Linked list articles"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/","url":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/","name":"Learn Python Stack using a Doubly Linked List","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png","datePublished":"2021-08-19T12:13:32+00:00","dateModified":"2022-12-13T11:38:07+00:00","description":"The doubly linked list is one of the most important concepts in data structures to learn while preparing for interviews. Having a good grasp of doubly Linked Lists can be a huge plus point in a coding interview.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1644922643867-99.Python%20stack_Artboard%206.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/python-stack-using-a-doubly-linked-list\/#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":"Python Stack using a Doubly Linked List"}]},{"@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\/3895","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=3895"}],"version-history":[{"count":8,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/3895\/revisions"}],"predecessor-version":[{"id":10782,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/3895\/revisions\/10782"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=3895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=3895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=3895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}