20162328蔡文琛 week09 大二

20162328蔡文琛 大二week09

教材學習內容總結

堆是一棵徹底二叉樹,其中每一個元素大於等於其全部子節點的值。
向堆中添加一個元素的方法是,首先將這個元素添加爲葉節點而後將其向上移動到合適的位置。
從堆中刪除最大元素的方法是,利用最後的葉節點來取代根,而後將其向下移動到合適的位置。
堆是一棵徹底二叉樹,其中每一個元素大於等於其全部子節點的值。 向堆中添加一個元素的方法是,首先將這個元素添加爲葉節點而後將其向上移動到合適的位置。 從堆中刪除最大元素的方法是,利用最後的葉節點來取代根,而後將其向下移動到合適的位置。 堆排序利用堆的基本特性對異族元素進行排序。 優先隊列不是FIFO隊列。它根據優先級排列元素,而不是根據它們進入隊列的次序來排列 二叉查找樹和堆都是越輸了元素之間關係的二叉樹。二叉查找樹中的結點大於他的左節點,並小於等於它的右子節點,而(最大)堆中的節點大於等於他的兩個子節點。
最小堆中數的最小值在樹的根,而最大堆中最大值在根。因此,他們的策略和實現機制都是相似的。
將元素做爲新的葉節點添加到堆中,而後讓它在樹中向上移動到與其餘元素的大小先對合適的位置。
在(最大)堆中,用樹的最後葉節點體換根,而後將該元素向下移動到與其餘元素大小合適的位置,從而刪除最大元素。
堆排序是一種排序算法,他先將數據添加到堆中,而後按排序的次序刪除他們。
優先隊列是一個隊列,其元素按指定的優先級來排序,優先級相同時,按出現的前後次序排序。
git

教材學習中的問題和解決過程

問題:仍是不太理解優先隊列的概念。
解決:
優先隊列是一種用來維護由一組元素構成的集合S的數據結構,其中的每個元素都有一個相關的值,稱爲關鍵字。優先隊列也分爲兩種:最大優先隊列和最小優先隊列。
     一個最大優先隊列支持如下操做:
•INSERT(S,x):把元素x插入集合S中;
•MAXIMUM(S):返回S中具備最大關鍵字的元素;
•EXTRACT_MAX(S):去掉而且返回S中的具備最大關鍵字的元素;
•INCREASE_KEY(S,x,k):將元素x的關鍵字值增長到k。
相應地,最小優先隊列支持的操做包括INSERT、MINIMUM、EXTRAT_MIN和DECRESE_KEY。
算法

[代碼託管] (https://gitee.com/pdds2017/cwc20162328_JavaFoundations2nd/tree/master/src/FourArithmeticOperations)數據結構

相關文章
相關標籤/搜索