{"id":9278,"date":"2022-08-29T11:11:48","date_gmt":"2022-08-29T11:11:48","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=9278"},"modified":"2023-11-24T07:14:16","modified_gmt":"2023-11-24T07:14:16","slug":"iterative-tower-of-hanoi","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/","title":{"rendered":"Iterative Tower of Hanoi"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg\" alt=\"\" \/><\/p>\n<p>The Tower of Hanoi puzzle has fascinated mathematicians and puzzle enthusiasts alike for centuries with its elegant simplicity and complex nature. Originally formulated by the French mathematician \u00c9douard Lucas in 1883, this classic problem involves moving a stack of disks from one peg to another, adhering to specific rules. While the traditional Tower of Hanoi puzzle employs a recursive algorithm, the concept of an iterative solution has emerged as an intriguing alternative.<\/p>\n<h2>What is the Tower of Hanoi?<\/h2>\n<p>In the Tower of Hanoi problem you are given three rods (\u201cSource\u201d, \u201cDestination\u201d, \u201cAuxiliary\u201d) and n disks. Initially, all the disks are stacked on the source rod in decreasing order of disk\u2019s size making a conical shape. Your task is to move all the stacked disks to the destination rod by obeying the following rules:<\/p>\n<ol>\n<li>You can move only one disk in one step.<\/li>\n<li>The topmost disk can be removed from any rod and placed on the top of the other rod.<\/li>\n<li>A disk can not be placed on another disk that is smaller in size than it.<\/li>\n<\/ol>\n<p><strong>Test cases:<\/strong><br \/>\n<strong>Input:<\/strong><br \/>\n2<\/p>\n<p><strong>Output:<\/strong><br \/>\nMove Disk 1 from \u201cS\u201d to \u201cA\u201d<br \/>\nMove Disk 2 from \u201cS\u201d to \u201cD\u201d<br \/>\nMove Disk 1 from \u201cA\u201d to \u201cD\u201d<\/p>\n<h3>Explanation:<\/h3>\n<h4>Iterative Approach<\/h4>\n<h4>Algorithm<\/h4>\n<ol>\n<li>Find the total number of moves required to solve the problem.<\/li>\n<li>If the number of disks is n, then the total moves required is 2n &#8211; 1.<\/li>\n<li>If n % 2 == 0, i.e, n is even then exchange the position of destination rod and auxiliary rod.<\/li>\n<li>Iterate i in 1 to moves<br \/>\na. if i % 3 == 1:<br \/>\na.1. Move the topmost disk of the source pole and place it on the top of the destination pole.<br \/>\nb. If i%3 == 2:<br \/>\nb.1. Move the topmost disk of the source pole and place it on the top of the auxiliary pole.<br \/>\nc. If i%3 == 0:<br \/>\nc.1. Move the topmost disk of the auxiliary pole and place it on the top of the destination pole.<\/li>\n<\/ol>\n<h3>Code Implementation:<\/h3>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_9279 {\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_9279 .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_9279 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_9279 .wpsm_nav-tabs > li.active > a, #tab_container_9279 .wpsm_nav-tabs > li.active > a:hover, #tab_container_9279 .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_9279 .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_9279 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_9279 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_9279 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_9279 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_9279 .wpsm_nav-tabs > li > a:hover , #tab_container_9279 .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_9279 .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_9279 .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_9279 .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_9279 .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_9279 .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_9279 .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_9279 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_9279 .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_9279 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_9279 .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_9279 .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_9279\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_9279\">\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_9279_1\" aria-controls=\"tabs_desc_9279_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>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\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_9279\">\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_9279_1\">\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\n\r\nimport java.util.*;\r\nimport java.lang.*;\r\nimport java.io.*;\r\npublic class TowerOfHanoi{\r\n\t\r\n\/\/ Stack Class\r\nclass Stack\r\n{\r\n\tint capacity;\r\n\tint top;\r\n\tint array[];\r\n}\r\n\r\n\/\/ This function will create a new stack of the given capacity\r\nStack initStack(int capacity)\r\n{\r\n\tStack st = new Stack();\r\n\tst.capacity = capacity;\r\n\tst.top = -1;\r\n\tst.array = new int[capacity];\r\n\treturn st;\r\n}\r\n\r\n\/\/ This function checks whether the stack is full or not\r\nboolean isFull(Stack st)\r\n{\r\n\treturn (st.top == st.capacity - 1);\r\n}\r\n\r\n\/\/ This function checks whether the stack is empty or not\r\nboolean isEmpty(Stack st)\r\n{\r\n\treturn (st.top == -1);\r\n}\r\n\r\n\/\/ This function adds this item to the stack.\r\nvoid push(Stack st, int item)\r\n{\r\n\tif (isFull(st)) {\r\n\t\treturn;\r\n\t}\r\n\t\t\r\n\tst.array[++st.top] = item;\r\n}\r\n\r\n\/\/ This function removes the top of the stack.\r\nint pop(Stack st)\r\n{\r\n\tif (isEmpty(st))\r\n\t\treturn Integer.MIN_VALUE;\r\n\t\t\r\n\treturn st.array[st.top--];\r\n}\r\n\r\n\/\/ This function carries out the movement of the disk between two poles.\r\nvoid move(Stack src, Stack dest,\r\n\t\t\t\t\t\t\tchar s, char d)\r\n{\r\n\tint disk1 = pop(src);\r\n\tint disk2 = pop(dest);\r\n\r\n\t\/\/ Is rod 1 is empty\r\n\tif (disk1 == Integer.MIN_VALUE)\r\n\t{\r\n\t\tpush(src, disk2);\r\n\t\tprintMove(d, s, disk2);\r\n\t}\r\n\t\r\n\t\/\/ if rod 2  is empty\r\n\telse if (disk2 == Integer.MIN_VALUE)\r\n\t{\r\n\t\tpush(dest, disk1);\r\n\t\tprintMove(s, d, disk1);\r\n\t}\r\n\t\r\n\t\/\/ If Disk 1 &gt; Disk 2\r\n\telse if (disk1 &gt; disk2)\r\n\t{\r\n\t\tpush(src, disk1);\r\n\t\tpush(src, disk2);\r\n\t\tprintMove(d, s, disk2);\r\n\t}\r\n\t\/\/ If Disk 1 &lt; Disk 2\r\n\telse\r\n\t{\r\n\t\tpush(dest, disk2);\r\n\t\tpush(dest, disk1);\r\n\t\tprintMove(s, d, disk1);\r\n\t}\r\n}\r\n\r\n\/\/ This function will print the movement of disks\r\nvoid printMove(char from, char to, int disk)\r\n{\r\n\tSystem.out.println(&quot;Move the disk &quot; + disk +\r\n\t\t\t\t\t\t\t&quot; from &quot; + from +\r\n\t\t\t\t\t\t\t&quot; to &quot; + to);\r\n}\r\n\r\n\/\/ Function to implement the algorithm\r\nvoid iterativeTowerOfHanoi(int n, Stack\r\n\t\t\t\tsrc, Stack aux, Stack dest)\r\n{\r\n\tint i, moves;\r\n\tchar s = 'S', d = 'D', a = 'A';\r\n\r\n    \/\/ If n is even then exchange the position of destination rod and auxiliary rod.\r\n\tif (n % 2 == 0)\r\n\t{\r\n\t\tchar temp = d;\r\n\t\td = a;\r\n\t\ta = temp;\r\n\t}\r\n\tmoves = (int)(Math.pow(\r\n\t\t\t\t\t\t2, n) - 1);\r\n\r\n\tfor(i = n; i &gt;= 1; i--)\r\n\t\tpush(src, i);\r\n\r\n\tfor(i = 1; i &lt;= moves; i++)\r\n\t{\r\n\t\tif (i % 3 == 1)\r\n\t\tmove(src, dest, s, d);\r\n\r\n\t\telse if (i % 3 == 2)\r\n\t\tmove(src, aux, s, a);\r\n\r\n\t\telse if (i % 3 == 0)\r\n\t\tmove(aux, dest, a, d);\r\n\t}\r\n}\r\n\r\n    \/\/ Main function\r\n    public static void main(String[] args)\r\n    {\r\n\t\r\n\tint n = 3;\r\n\t\r\n\tTowerOfHanoi ob = new TowerOfHanoi();\r\n\r\n\t\/\/ Create three stacks (Source, destination, Auxiliary)\r\n\tStack source = ob.initStack(n);\r\n\tStack destination = ob.initStack(n);\r\n      Stack auxiliary = ob.initStack(n);\r\n\t\r\n\tob.iterativeTowerOfHanoi(n, source, auxiliary, destination);\r\n    }\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\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_9279 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_9279 a\"),jQuery(\"#tab-content_9279\"));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>Output:<\/strong><br \/>\nMove the disk 1 from S to D<br \/>\nMove the disk 2 from S to A<br \/>\nMove the disk 1 from D to A<br \/>\nMove the disk 3 from S to D<br \/>\nMove the disk 1 from A to S<br \/>\nMove the disk 2 from A to D<br \/>\nMove the disk 1 from S to D<\/p>\n<h3>Dry Run:<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771402938-Iterative%20Tower%20of%20Hanoi-1.png\" alt=\"\" \/><\/p>\n<p><strong>Time complexity:<\/strong> O(2^n). The minimum number of moves required is 2n.<\/p>\n<p><strong>Space Complexity:<\/strong> O(n). We have to store at most n disks.<\/p>\n<p><strong>Conclusion<\/strong><br \/>\nThe Tower of Hanoi puzzle continues to captivate minds with its blend of simplicity and complexity. The iterative approach offers an alternative methodology to solve this problem, emphasizing efficiency, scalability, and clearer control flow. By diverging from the recursive path, the iterative solution showcases a different perspective on algorithmic problem-solving, shedding light on the diverse strategies available to tackle intricate challenges.<\/p>\n<h2>FAQ (Frequently Asked Questions) About Iterative Tower of Hanoi:<\/h2>\n<p>Here are some FAQs related to the iterative Tower of Hanoi.<\/p>\n<p><strong>1. How does the iterative Tower of Hanoi differ from the recursive method?<\/strong><br \/>\nThe iterative approach employs loops and explicit stack-based methods to solve the Tower of Hanoi puzzle, whereas the recursive method relies on function calls and dividing the problem into smaller subproblems.<\/p>\n<p><strong>2. Is the iterative solution faster than the recursive one?<\/strong><br \/>\nIn some cases, the iterative solution may offer faster execution due to the elimination of function call overhead. However, the actual performance can vary based on the implementation and problem size.<\/p>\n<p><strong>3. Can the iterative approach handle larger Tower of Hanoi configurations?<\/strong><br \/>\nThe iterative method&#8217;s optimized iterations and stepwise movement strategies can potentially handle larger configurations more efficiently than recursive approaches, but it also depends on the specific implementation and constraints.<\/p>\n<p><strong>4. What are the advantages of understanding the iterative Tower of Hanoi solution?<\/strong><br \/>\nExploring the iterative solution enhances one&#8217;s understanding of algorithm design, control flow structures, and alternative problem-solving strategies, providing valuable insights beyond traditional recursive paradigms.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Tower of Hanoi puzzle has fascinated mathematicians and puzzle enthusiasts alike for centuries with its elegant simplicity and complex nature. Originally formulated by the French mathematician \u00c9douard Lucas in 1883, this classic problem involves moving a stack of disks from one peg to another, adhering to specific rules. While the traditional Tower of Hanoi [&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":[127],"tags":[],"class_list":["post-9278","post","type-post","status-publish","format-standard","hentry","category-stacks"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Iterative Tower of Hanoi | Stacks | PrepBytes Blog<\/title>\n<meta name=\"description\" content=\"This article tried to discuss the iterative way to solve the Tower of Hanoi problem. Hope this blog helps you understand and solve the problems in the interviews.\" \/>\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\/iterative-tower-of-hanoi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Iterative Tower of Hanoi | Stacks | PrepBytes Blog\" \/>\n<meta property=\"og:description\" content=\"This article tried to discuss the iterative way to solve the Tower of Hanoi problem. Hope this blog helps you understand and solve the problems in the interviews.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/\" \/>\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-08-29T11:11:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-24T07:14:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg\" \/>\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\/iterative-tower-of-hanoi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Iterative Tower of Hanoi\",\"datePublished\":\"2022-08-29T11:11:48+00:00\",\"dateModified\":\"2023-11-24T07:14:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/\"},\"wordCount\":643,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg\",\"articleSection\":[\"Stacks\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/\",\"name\":\"Iterative Tower of Hanoi | Stacks | PrepBytes Blog\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg\",\"datePublished\":\"2022-08-29T11:11:48+00:00\",\"dateModified\":\"2023-11-24T07:14:16+00:00\",\"description\":\"This article tried to discuss the iterative way to solve the Tower of Hanoi problem. Hope this blog helps you understand and solve the problems in the interviews.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Stacks\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/stacks\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Iterative Tower of Hanoi\"}]},{\"@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":"Iterative Tower of Hanoi | Stacks | PrepBytes Blog","description":"This article tried to discuss the iterative way to solve the Tower of Hanoi problem. Hope this blog helps you understand and solve the problems in the interviews.","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\/iterative-tower-of-hanoi\/","og_locale":"en_US","og_type":"article","og_title":"Iterative Tower of Hanoi | Stacks | PrepBytes Blog","og_description":"This article tried to discuss the iterative way to solve the Tower of Hanoi problem. Hope this blog helps you understand and solve the problems in the interviews.","og_url":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2022-08-29T11:11:48+00:00","article_modified_time":"2023-11-24T07:14:16+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg","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\/iterative-tower-of-hanoi\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Iterative Tower of Hanoi","datePublished":"2022-08-29T11:11:48+00:00","dateModified":"2023-11-24T07:14:16+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/"},"wordCount":643,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg","articleSection":["Stacks"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/","url":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/","name":"Iterative Tower of Hanoi | Stacks | PrepBytes Blog","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg","datePublished":"2022-08-29T11:11:48+00:00","dateModified":"2023-11-24T07:14:16+00:00","description":"This article tried to discuss the iterative way to solve the Tower of Hanoi problem. Hope this blog helps you understand and solve the problems in the interviews.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1661771366371-Iterative%20Tower%20of%20Hanoi%20Header.jpeg"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/iterative-tower-of-hanoi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Stacks","item":"https:\/\/prepbytes.com\/blog\/category\/stacks\/"},{"@type":"ListItem","position":3,"name":"Iterative Tower of Hanoi"}]},{"@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\/9278","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=9278"}],"version-history":[{"count":3,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/9278\/revisions"}],"predecessor-version":[{"id":18369,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/9278\/revisions\/18369"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=9278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=9278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=9278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}