O(NlgK)問題優先隊列標頭檔C語言

來源:互聯網
上載者:User

/*PriorityQueue.h -- 最小堆標頭檔*/<br />#include "Head.h"</p><p>/*介面函式宣告*/</p><p>/*操作:建立並初始化一個優先隊列*/<br />/*操作前:ppq 指向一個優先隊列, size 是指定該優先隊列大小的變數*/<br />/*操作後:如果 size > 0 && 記憶體配置成功, 建立並初始化該優先隊列, 返回 TRUE ; 否則返回 FALSE*/<br />/*時間複雜度:O (1)*/<br />BOOL Initialize_P (PriorityQueue * const ppq, const int size) ;</p><p>/*操作:確定一個優先隊列是否為空白*/<br />/*操作前:ppq 指向一個已初始化的優先隊列*/<br />/*操作後:如果該優先隊列為空白, 返回 TRUE ; 否則返回 FALSE*/<br />/*時間複雜度:O (1)*/<br />BOOL IsEmpty_P (const PriorityQueue * const ppq) ;</p><p>/*操作:確定一個優先隊列是否已滿*/<br />/*操作前:ppq 指向一個已初始化的優先隊列*/<br />/*操作後:如果該優先隊列已滿, 返回 TRUE ; 否則返回 FALSE*/<br />/*時間複雜度:O (1)*/<br />BOOL IsFull_P (const PriorityQueue * const ppq) ;</p><p>/*操作:向一個優先隊列中插入一個結點*/<br />/*操作前:ppq 指向一個已初始化的優先隊列, pn 是待添加到隊列中的結點*/<br />/*操作後:如果該優先隊列未滿, 向該優先隊列中添加 pn , 返回 TRUE ; 否則返回 FALSE*/<br />/*時間複雜度:O (log N)*/<br />BOOL Insert_P (const PriorityQueue * const ppq, const PriorityNode pn) ;</p><p>/*操作:刪除並返回優先隊列中資料域最小的結點*/<br />/*操作前:ppq 指向一個已初始化的優先隊列*/<br />/*操作後:如果該優先隊列不為空白, 刪除並返回資料域最小的結點; 否則返回 NULL*/<br />/*時間複雜度:O (log N)*/<br />PriorityNode DeleteMin_P (const PriorityQueue * const ppq) ;</p><p>/*操作:增加優先隊列中指定位置的結點的資料指定值*/<br />/*操作前:ppq 指向一個已初始化的優先隊列, position 指定位置, delta 是改變數*/<br />/*操作前:如果 position 為有效位置 && delta > 0, 將優先隊列中 position 位置的結點的資料增加 delta , 返回 TRUE ; 否則返回 FALSE*/<br />/*時間複雜度:O (log N)*/<br />BOOL IncreaseKey_P (const PriorityQueue * const ppq, const int position, const Item delta) ;</p><p>/*操作:減少優先隊列中指定位置結點的資料指定值*/<br />/*操作前:ppq 指向一個已初始化的優先隊列, position 指定位置, delta 是改變數*/<br />/*操作後:如果 position 是有效位置 && delta > 0, 將優先隊列中 position 位置的結點的資料減少 delta , 返回 TRUE ; 否則返回 FALSE*/<br />/*時間複雜度:O (log N)*/<br />BOOL DecreaseKey_P (const PriorityQueue * const ppq, const int position, const Item delta) ;</p><p>/*操作:釋放一個優先隊列佔用的記憶體空間*/<br />/*操作前:ppq 指向一個已初始化的優先隊列*/<br />/*操作後:該優先隊列佔用的記憶體空間被釋放*/<br />/*時間複雜度:O (N)*/<br />void Release_P (const PriorityQueue * const ppq) ;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.