首頁 >後端開發 >C++ >二元堆的數組表示

二元堆的數組表示

PHPz
PHPz轉載
2023-09-04 22:45:05704瀏覽

遵循堆排序屬性的完全二元樹稱為二元堆

根據二元堆的排序方式,它可以分為兩種類型:

最小堆是節點的值大於或等於其父節點的值的堆。最小堆的根節點最小。

最大堆是節點的值小於或等於其父節點的值的堆。最大堆的根節點最大。

二元堆的值通常表示為一個陣列。二元堆的陣列表示如下:

  • 根元素的索引為0。

  • 如果i是數組中節點的索引,則與該節點相關的其他節點的索引如下:

    • 左孩子:(2 *i) 1

    • 右子女:(2*i) 2

    • 父節點:(i-1)/2

使用上述陣列表示規則,我們可以將堆疊表示為陣列:

二元堆的數組表示

##1478#911現在,我們可以討論基於排序的堆的型別:
##12

  • 最小堆

    - 根節點具有最小值。節點的值大於父節點的值。

  • 範例:

二元堆的數組表示

#陣列表示:

1##10 #8
4 7 6 9
    最大堆
  • - 根節點具有最大值。節點的值小於父節點的值。

    範例:

二元堆的數組表示

#陣列表示:

1189#6##5 #1
##4 #

以上是二元堆的數組表示的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除