基本資料結構 最小堆

2021-10-08 18:47:10 字數 701 閱讀 9714

最小堆,是完全二叉樹,其基本定義是任何乙個節點小於其左右子樹的節點

常見操作:加入乙個值,取最小值,刪除最小值

加入乙個值,直接加入到末尾a[size++]然後該元素上浮到合適位置

最大值即根節點 a[0]

刪除最小值,讓末尾元素填充到a[0]  然後該元素下沉到合適位置

下沉過程中,選取左右子節點的最小值,上浮(任滿足節點大於左右子樹)

易錯點,樹中沒有節點,以及下沉過程中,是否存在左右子樹的判斷(即基本的陣列區間判斷)

class heap

void up(int index) //arr[index]位置元素上浮

arr[index] = flag;//最終填入位置

}int min()

void del() //刪除根元素 最小元素後 最後元素填上,然後下沉

arr[0] = arr[size - 1];//將最後乙個填充到根頂部

size--;

down(0);//從根節點開始下沉

}void down(int index) //arr[index]位置元素下沉

}else}}

else //不存在右子樹}}

}};

6 資料結構 最小堆

開發過程,經常需要對資料集合進行維護。維護資料結合的資料結構可統稱為容器。最小堆是維護資料集合的容器的一種,最小堆具備如下性質 設v i 為位置i的元素值 1.對維護的n個元素,順序儲存於索引為1 n的陣列位置 2.對索引i,若索引2 i n,有v i v 2 i 若索引2 i 1 n,有v i v...

opencv基本資料結構

iplimage 首先介紹重要的成員變數 width和height表示了的尺寸。其次是depth和nchannels,depth是指畫素顏色的取值範圍,nchnannels為影象的通道,可以取1,2,3,4 origin變數定義了影象的原點,有兩個取值,分別是ipl origin bl和ipl or...

Python 基本資料結構

列表是python裡的內建的型別之一,可以新增和刪除其中的元素。如 role sam 33 dean 37 可以列表中包含列表,同一列表中包含不同型別的資料。下面介紹列表的一些通用操作,關於list的其他用法,可以通過help list 檢視。a 2,13,12,41,17,23 a 1 列表從0開...