{"id":156,"date":"2020-02-18T09:26:00","date_gmt":"2020-02-18T09:26:00","guid":{"rendered":"https:\/\/imwarming.com\/?p=156"},"modified":"2020-02-18T09:26:00","modified_gmt":"2020-02-18T09:26:00","slug":"%e6%9c%80%e5%a4%a7%e5%a0%86","status":"publish","type":"post","link":"https:\/\/imwarming.com\/?p=156","title":{"rendered":"\u6700\u5927\u5806"},"content":{"rendered":"<div class=\"cnblogs_code\">\n<pre>typedef <span style=\"color: #0000ff;\">struct<\/span> heapstruct *<span style=\"color: #000000;\">maxheap;\n<\/span><span style=\"color: #0000ff;\">struct<\/span><span style=\"color: #000000;\"> heapstruct{\n    <\/span><span style=\"color: #0000ff;\">int<\/span> *elements;<span style=\"color: #008000;\">\/*<\/span><span style=\"color: #008000;\"> \u5b58\u50a8\u5806\u5143\u7d20\u7684\u6570\u7ec4 <\/span><span style=\"color: #008000;\">*\/<\/span>\n    <span style=\"color: #0000ff;\">int<\/span> size;<span style=\"color: #008000;\">\/*<\/span><span style=\"color: #008000;\"> \u5806\u7684\u5f53\u524d\u5143\u7d20\u4e2a\u6570 <\/span><span style=\"color: #008000;\">*\/<\/span>\n    <span style=\"color: #0000ff;\">int<\/span> capacity;<span style=\"color: #008000;\">\/*<\/span><span style=\"color: #008000;\"> \u5806\u7684\u6700\u5927\u5bb9\u91cf <\/span><span style=\"color: #008000;\">*\/<\/span><span style=\"color: #000000;\">\n};\n\nmaxheap create(<\/span><span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> maxsize){\n    <\/span><span style=\"color: #008000;\">\/*<\/span><span style=\"color: #008000;\"> \u521b\u5efa\u5bb9\u91cf\u4e3amaxsize\u7684\u7a7a\u7684\u6700\u5927\u5806 <\/span><span style=\"color: #008000;\">*\/<\/span><span style=\"color: #000000;\">\n    maxheap h <\/span>= <span style=\"color: #0000ff;\">malloc<\/span>(<span style=\"color: #0000ff;\">sizeof<\/span>(<span style=\"color: #0000ff;\">struct<\/span><span style=\"color: #000000;\"> heapstruct));\n    h<\/span>-&gt;elements = <span style=\"color: #0000ff;\">malloc<\/span>((maxsize+<span style=\"color: #800080;\">1<\/span>) * <span style=\"color: #0000ff;\">sizeof<\/span>(<span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\">)); \n    h<\/span>-&gt;size = <span style=\"color: #800080;\">0<\/span><span style=\"color: #000000;\">;\n    h<\/span>-&gt;capacity =<span style=\"color: #000000;\"> maxsize;\n    h<\/span>-&gt;elements[<span style=\"color: #800080;\">0<\/span>] =<span style=\"color: #000000;\"> maxdata;\n    <\/span><span style=\"color: #008000;\">\/*<\/span><span style=\"color: #008000;\"> \u5b9a\u4e49&ldquo;\u54e8\u5175&rdquo;\u4e3a\u5927\u4e8e\u5806\u4e2d\u6240\u6709\u53ef\u80fd\u5143\u7d20\u7684\u503c\uff0c\u4fbf\u4e8e\u4ee5\u540e\u66f4\u5feb\u64cd\u4f5c <\/span><span style=\"color: #008000;\">*\/<\/span>\n    <span style=\"color: #0000ff;\">return<\/span><span style=\"color: #000000;\"> h;\n}\n\n<\/span><span style=\"color: #0000ff;\">void<\/span> insert(maxheap h,<span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> item){\n    <\/span><span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> i;\n    <\/span><span style=\"color: #0000ff;\">if<\/span><span style=\"color: #000000;\">(isfull(h)){\n        cout<\/span>&lt;&lt;<span style=\"color: #800000;\">\"<\/span><span style=\"color: #800000;\">\u5806\u6ee1\u4e86<\/span><span style=\"color: #800000;\">\"<\/span>&lt;&lt;<span style=\"color: #000000;\">endl;\n        <\/span><span style=\"color: #0000ff;\">return<\/span><span style=\"color: #000000;\">;\n    }\n    i <\/span>= ++h-&gt;<span style=\"color: #000000;\">size;\n    <\/span><span style=\"color: #0000ff;\">for<\/span>(; h-&gt;elements[i\/<span style=\"color: #800080;\">2<\/span>] &lt; item; i\/=<span style=\"color: #800080;\">2<\/span><span style=\"color: #000000;\">){\n        h<\/span>-&gt;elements[i] = h-&gt;elements[i\/<span style=\"color: #800080;\">2<\/span><span style=\"color: #000000;\">];\n    }\n    h<\/span>-&gt;elements[i] =<span style=\"color: #000000;\"> item;\n}\n\n<\/span><span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> deletemax(maxheap h){\n    <\/span><span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> parent,child;\n    <\/span><span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> maxitem,temp;\n    <\/span><span style=\"color: #0000ff;\">if<\/span><span style=\"color: #000000;\">(isempty(h)){\n        cout<\/span>&lt;&lt;<span style=\"color: #800000;\">\"<\/span><span style=\"color: #800000;\">\u6700\u5927\u5806\u7a7a<\/span><span style=\"color: #800000;\">\"<\/span>&lt;&lt;<span style=\"color: #000000;\">endl;\n        <\/span><span style=\"color: #0000ff;\">return<\/span><span style=\"color: #000000;\">;\n    }\n    maxitem <\/span>= h-&gt;elements[<span style=\"color: #800080;\">1<\/span><span style=\"color: #000000;\">];\n    temp <\/span>= h-&gt;elements[h-&gt;size--<span style=\"color: #000000;\">];\n    <\/span><span style=\"color: #0000ff;\">for<\/span>(parent = <span style=\"color: #800080;\">1<\/span>; parent*<span style=\"color: #800080;\">2<\/span> &lt;= h-&gt;size; parent =<span style=\"color: #000000;\"> child){\n        child <\/span>= parent * <span style=\"color: #800080;\">2<\/span><span style=\"color: #000000;\">;\n        <\/span><span style=\"color: #0000ff;\">if<\/span>((child != h-&gt;size)&amp;&amp;<span style=\"color: #000000;\">\n           (h<\/span>-&gt;elements[child] &lt; h-&gt;elements[child+<span style=\"color: #800080;\">1<\/span><span style=\"color: #000000;\">]))\n            child<\/span>++<span style=\"color: #000000;\">;\n        <\/span><span style=\"color: #0000ff;\">if<\/span>(temp &gt;= h-&gt;elements[child])<span style=\"color: #0000ff;\">break<\/span><span style=\"color: #000000;\">;\n        <\/span><span style=\"color: #0000ff;\">else<\/span><span style=\"color: #000000;\">\n            h<\/span>-&gt;elements[parent] = h-&gt;<span style=\"color: #000000;\">elements[child];\n    }\n    h<\/span>-&gt;elements[parent] =<span style=\"color: #000000;\"> temp;\n    <\/span><span style=\"color: #0000ff;\">return<\/span><span style=\"color: #000000;\"> maxitem;\n}<\/span><\/pre>\n<\/div>\n<p>\u6700\u5927\u5806\uff08\u5347\u5e8f\u5927\u9876\u5806\uff0c \u964d\u5e8f\u5c0f\u9876\u5806\uff09<\/p>\n<div class=\"cnblogs_code\">\n<pre>#include&lt;bits\/stdc++.h&gt;\n<span style=\"color: #0000ff;\">using<\/span> <span style=\"color: #0000ff;\">namespace<\/span><span style=\"color: #000000;\"> std;\ntypedef <\/span><span style=\"color: #0000ff;\">long<\/span> <span style=\"color: #0000ff;\">long<\/span><span style=\"color: #000000;\"> ll;\n<\/span><span style=\"color: #0000ff;\">const<\/span> <span style=\"color: #0000ff;\">int<\/span> maxn = 1e7 + <span style=\"color: #800080;\">5<\/span><span style=\"color: #000000;\">;\n<\/span><span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> n, m, k, sum, a[maxn];\n<\/span><span style=\"color: #0000ff;\">string<\/span><span style=\"color: #000000;\"> s;\nqueue<\/span>&lt;<span style=\"color: #0000ff;\">int<\/span>&gt;<span style=\"color: #000000;\"> q;\n\n<\/span><span style=\"color: #0000ff;\">void<\/span> up(<span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> p){\n    <\/span><span style=\"color: #0000ff;\">while<\/span>(p &gt; <span style=\"color: #800080;\">1<\/span> &amp;&amp; a[p] &gt; a[p \/ <span style=\"color: #800080;\">2<\/span><span style=\"color: #000000;\">]){\n        swap(a[p], a[p <\/span>\/ <span style=\"color: #800080;\">2<\/span><span style=\"color: #000000;\">]);\n        p <\/span>= p \/ <span style=\"color: #800080;\">2<\/span><span style=\"color: #000000;\">;\n    }\n}\n\n<\/span><span style=\"color: #0000ff;\">void<\/span> down(<span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> p){\n    <\/span><span style=\"color: #0000ff;\">while<\/span>(p * <span style=\"color: #800080;\">2<\/span> &lt;=<span style=\"color: #000000;\"> n){\n        <\/span><span style=\"color: #0000ff;\">int<\/span> u = p * <span style=\"color: #800080;\">2<\/span><span style=\"color: #000000;\">;\n        <\/span><span style=\"color: #0000ff;\">if<\/span>(u + <span style=\"color: #800080;\">1<\/span> &lt;= n &amp;&amp; a[u + <span style=\"color: #800080;\">1<\/span>] &gt;<span style=\"color: #000000;\"> a[u]){\n            u<\/span>++<span style=\"color: #000000;\">;\n        }\n        <\/span><span style=\"color: #0000ff;\">if<\/span>(a[u] &gt;<span style=\"color: #000000;\"> a[p]){\n            swap(a[u], a[p]);\n            p <\/span>=<span style=\"color: #000000;\"> u;\n        }\n        <\/span><span style=\"color: #0000ff;\">else<\/span> <span style=\"color: #0000ff;\">break<\/span><span style=\"color: #000000;\">;\n    }\n}\n\n<\/span><span style=\"color: #0000ff;\">void<\/span><span style=\"color: #000000;\"> makeheap(){\n    <\/span><span style=\"color: #0000ff;\">for<\/span>(<span style=\"color: #0000ff;\">int<\/span> i = n \/ <span style=\"color: #800080;\">2<\/span>; i &gt;= <span style=\"color: #800080;\">1<\/span>; i--<span style=\"color: #000000;\">){\n        down(i);\n    }\n}\n\n<\/span><span style=\"color: #0000ff;\">void<\/span> push(<span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> x){\n    a[<\/span>++n] =<span style=\"color: #000000;\"> x;\n    up(n);\n}\n\n<\/span><span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> top(){\n    <\/span><span style=\"color: #0000ff;\">return<\/span> a[<span style=\"color: #800080;\">1<\/span><span style=\"color: #000000;\">];\n}\n\n<\/span><span style=\"color: #0000ff;\">void<\/span><span style=\"color: #000000;\"> pop(){\n    swap(a[<\/span><span style=\"color: #800080;\">1<\/span>], a[n--<span style=\"color: #000000;\">]);\n    down(<\/span><span style=\"color: #800080;\">1<\/span><span style=\"color: #000000;\">);\n}\n\n<\/span><span style=\"color: #0000ff;\">int<\/span><span style=\"color: #000000;\"> main(){\n    <\/span><span style=\"color: #008000;\">\/\/<\/span><span style=\"color: #008000;\">ios_base::sync_with_stdio(0);\n    <\/span><span style=\"color: #008000;\">\/\/<\/span><span style=\"color: #008000;\">cin.tie(); cout.tie();<\/span>\n    n = <span style=\"color: #800080;\">10<\/span><span style=\"color: #000000;\">;\n    <\/span><span style=\"color: #0000ff;\">for<\/span>(<span style=\"color: #0000ff;\">int<\/span> i = <span style=\"color: #800080;\">1<\/span>; i &lt;= n; i++<span style=\"color: #000000;\">)\n        a[i] <\/span>=<span style=\"color: #000000;\"> i;\n    makeheap();\n    <\/span><span style=\"color: #0000ff;\">for<\/span>(<span style=\"color: #0000ff;\">int<\/span> i = <span style=\"color: #800080;\">1<\/span>; i &lt;= <span style=\"color: #800080;\">10<\/span>; i++<span style=\"color: #000000;\">){\n        push(i <\/span>+ <span style=\"color: #800080;\">10<\/span><span style=\"color: #000000;\">);\n    }\n    <\/span><span style=\"color: #0000ff;\">while<\/span>(n &gt; <span style=\"color: #800080;\">0<\/span><span style=\"color: #000000;\">){\n        cout<\/span>&lt;&lt;top()&lt;&lt;<span style=\"color: #000000;\">endl;\n        pop();\n    }\n    <\/span><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #800080;\">0<\/span><span style=\"color: #000000;\">;\n}<\/span><\/pre>\n<\/div>\n<p>c++<\/p>\n","protected":false},"excerpt":{"rendered":"<p>typedef struct heapstruct *maxheap; struct heapstr [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-156","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6700\u5927\u5806 - imwarming<\/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:\/\/imwarming.com\/?p=156\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6700\u5927\u5806 - imwarming\" \/>\n<meta property=\"og:description\" content=\"typedef struct heapstruct *maxheap; struct heapstr [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imwarming.com\/?p=156\" \/>\n<meta property=\"og:site_name\" content=\"imwarming\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-18T09:26:00+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"warming\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/imwarming.com\/#website\",\"url\":\"https:\/\/imwarming.com\/\",\"name\":\"imwarming\",\"description\":\"\u6c38\u8fdc\u5e74\u8f7b\uff0c\u6c38\u8fdc\u70ed\u6cea\u76c8\u7736\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/imwarming.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/imwarming.com\/?p=156#webpage\",\"url\":\"https:\/\/imwarming.com\/?p=156\",\"name\":\"\u6700\u5927\u5806 - imwarming\",\"isPartOf\":{\"@id\":\"https:\/\/imwarming.com\/#website\"},\"datePublished\":\"2020-02-18T09:26:00+00:00\",\"dateModified\":\"2020-02-18T09:26:00+00:00\",\"author\":{\"@id\":\"https:\/\/imwarming.com\/#\/schema\/person\/9d76869a558bac6dd0d6d58f420ee8ea\"},\"breadcrumb\":{\"@id\":\"https:\/\/imwarming.com\/?p=156#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/imwarming.com\/?p=156\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/imwarming.com\/?p=156#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/imwarming.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6700\u5927\u5806\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/imwarming.com\/#\/schema\/person\/9d76869a558bac6dd0d6d58f420ee8ea\",\"name\":\"warming\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/imwarming.com\/#personlogo\",\"inLanguage\":\"zh-Hans\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c4a913eed88f7601b76bbf2b103472621195b6fa2f742af89b5ea185b60e7cff?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c4a913eed88f7601b76bbf2b103472621195b6fa2f742af89b5ea185b60e7cff?s=96&d=mm&r=g\",\"caption\":\"warming\"},\"sameAs\":[\"https:\/\/imwarming.com\"],\"url\":\"https:\/\/imwarming.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u6700\u5927\u5806 - imwarming","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:\/\/imwarming.com\/?p=156","og_locale":"zh_CN","og_type":"article","og_title":"\u6700\u5927\u5806 - imwarming","og_description":"typedef struct heapstruct *maxheap; struct heapstr [&hellip;]","og_url":"https:\/\/imwarming.com\/?p=156","og_site_name":"imwarming","article_published_time":"2020-02-18T09:26:00+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"warming","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/imwarming.com\/#website","url":"https:\/\/imwarming.com\/","name":"imwarming","description":"\u6c38\u8fdc\u5e74\u8f7b\uff0c\u6c38\u8fdc\u70ed\u6cea\u76c8\u7736","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imwarming.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"WebPage","@id":"https:\/\/imwarming.com\/?p=156#webpage","url":"https:\/\/imwarming.com\/?p=156","name":"\u6700\u5927\u5806 - imwarming","isPartOf":{"@id":"https:\/\/imwarming.com\/#website"},"datePublished":"2020-02-18T09:26:00+00:00","dateModified":"2020-02-18T09:26:00+00:00","author":{"@id":"https:\/\/imwarming.com\/#\/schema\/person\/9d76869a558bac6dd0d6d58f420ee8ea"},"breadcrumb":{"@id":"https:\/\/imwarming.com\/?p=156#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imwarming.com\/?p=156"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/imwarming.com\/?p=156#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/imwarming.com\/"},{"@type":"ListItem","position":2,"name":"\u6700\u5927\u5806"}]},{"@type":"Person","@id":"https:\/\/imwarming.com\/#\/schema\/person\/9d76869a558bac6dd0d6d58f420ee8ea","name":"warming","image":{"@type":"ImageObject","@id":"https:\/\/imwarming.com\/#personlogo","inLanguage":"zh-Hans","url":"https:\/\/secure.gravatar.com\/avatar\/c4a913eed88f7601b76bbf2b103472621195b6fa2f742af89b5ea185b60e7cff?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c4a913eed88f7601b76bbf2b103472621195b6fa2f742af89b5ea185b60e7cff?s=96&d=mm&r=g","caption":"warming"},"sameAs":["https:\/\/imwarming.com"],"url":"https:\/\/imwarming.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/imwarming.com\/index.php?rest_route=\/wp\/v2\/posts\/156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imwarming.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imwarming.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imwarming.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/imwarming.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=156"}],"version-history":[{"count":0,"href":"https:\/\/imwarming.com\/index.php?rest_route=\/wp\/v2\/posts\/156\/revisions"}],"wp:attachment":[{"href":"https:\/\/imwarming.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imwarming.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imwarming.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}