{"id":28926,"date":"2023-01-04T10:47:18","date_gmt":"2023-01-04T05:17:18","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/"},"modified":"2023-01-04T10:47:18","modified_gmt":"2023-01-04T05:17:18","slug":"solved-building-a-heap-principles-implementing-in-c-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/","title":{"rendered":"[Solved] Building a heap principles- implementing in C++ [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-14222875\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"14222875\" data-parentid=\"14222811\" data-score=\"2\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>The binary heap data structure is usually drawn as a binary tree with certain properties, but is typically implemented using a plain array.  The reason for this is that the array version uses less memory than the explicit binary tree and is a lot easier to manipulate.  Consequently, the array <strong>A<\/strong> that you&#8217;re seeing described is the array that holds all the values in the heap.<\/p>\n<p>The two fields you are seeing represent the raw total size of that array (<strong>length<\/strong>), which tracks how much storage space is available, and the number of elements within that array that you are actually using (<strong>heap-size<\/strong>).  When you insert an element into the heap, you will need to make sure that space exists for it, possibly reallocating the array to be larger and copying over the existing elements, then will need to run a bubble-up operation to insert the new element into the heap.<\/p>\n<p>Typically, though, you would sidestep the logic for maintaining the array and these two fields by layering the heap on top of a dynamic array, like the C++ <code>std::vector<\/code> or Java <code>ArrayList<\/code>.  That way, the logic to track storage space and grow the array is handled for you automatically.<\/p>\n<p>Depending on the assignment parameters, since this is being done in C++, you might want to look into the <code>std::make_heap<\/code>, <code>std::push_heap<\/code>, and <code>std::pop_heap<\/code> algorithms from the <code>&lt;algorithm&gt;<\/code> header.  They make it very easy to implement a heap on top of an existing container like <code>std::vector<\/code>.  In fact, this is how the <code>std::priority_queue<\/code> class is typically implemented.<\/p>\n<p>If you need to implement the heap operations yourself, you might want to check out <strong><a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/www.stanford.edu\/class\/archive\/cs\/cs106b\/cs106b.1126\/handouts\/190%20Assignment%205.pdf#page=5\">the description of a binary heap given in this assignment handout<\/a><\/strong>, which seems to closely match the assignment you&#8217;ve been given.<\/p>\n<p>Hope this helps!<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">5<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Building a heap principles- implementing in C++ [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] The binary heap data structure is usually drawn as a binary tree with certain properties, but is typically implemented using a plain array. The reason for this is that the array version uses less memory than the explicit binary tree and is a lot easier to manipulate. Consequently, the array A that you&#8217;re seeing &#8230; <a title=\"[Solved] Building a heap principles- implementing in C++ [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/\" aria-label=\"More on [Solved] Building a heap principles- implementing in C++ [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[457,5596,324,859],"class_list":["post-28926","post","type-post","status-publish","format-standard","hentry","category-solved","tag-algorithm","tag-binary-heap","tag-c","tag-data-structures"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[Solved] Building a heap principles- implementing in C++ [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Building a heap principles- implementing in C++ [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] The binary heap data structure is usually drawn as a binary tree with certain properties, but is typically implemented using a plain array. The reason for this is that the array version uses less memory than the explicit binary tree and is a lot easier to manipulate. Consequently, the array A that you&#8217;re seeing ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-04T05:17:18+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\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:\\\/\\\/jassweb.com\\\/solved\\\/solved-building-a-heap-principles-implementing-in-c-closed\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-building-a-heap-principles-implementing-in-c-closed\\\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Building a heap principles- implementing in C++ [closed]\",\"datePublished\":\"2023-01-04T05:17:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-building-a-heap-principles-implementing-in-c-closed\\\/\"},\"wordCount\":309,\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"keywords\":[\"algorithm\",\"binary-heap\",\"c++\",\"data-structures\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-building-a-heap-principles-implementing-in-c-closed\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-building-a-heap-principles-implementing-in-c-closed\\\/\",\"name\":\"[Solved] Building a heap principles- implementing in C++ [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\"},\"datePublished\":\"2023-01-04T05:17:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-building-a-heap-principles-implementing-in-c-closed\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-building-a-heap-principles-implementing-in-c-closed\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-building-a-heap-principles-implementing-in-c-closed\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Building a heap principles- implementing in C++ [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\\\/\\\/jassweb.com\"],\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/author\\\/jaspritsinghghumangmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Building a heap principles- implementing in C++ [closed] - JassWeb","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:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Building a heap principles- implementing in C++ [closed] - JassWeb","og_description":"[ad_1] The binary heap data structure is usually drawn as a binary tree with certain properties, but is typically implemented using a plain array. The reason for this is that the array version uses less memory than the explicit binary tree and is a lot easier to manipulate. Consequently, the array A that you&#8217;re seeing ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/","og_site_name":"JassWeb","article_published_time":"2023-01-04T05:17:18+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Building a heap principles- implementing in C++ [closed]","datePublished":"2023-01-04T05:17:18+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/"},"wordCount":309,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["algorithm","binary-heap","c++","data-structures"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/","name":"[Solved] Building a heap principles- implementing in C++ [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2023-01-04T05:17:18+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-building-a-heap-principles-implementing-in-c-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Building a heap principles- implementing in C++ [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/28926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=28926"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/28926\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=28926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=28926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=28926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}