Rumah >masalah biasa >堆序列怎么判断

堆序列怎么判断

藏色散人
藏色散人asal
2019-06-13 11:27:4412524semak imbas

堆序列怎么判断

已知一个序列,比如{100,6070,50,32,65},怎么判断是不是堆?

答案:把这个序列看成数组型的二叉树,如果根结点是i,左子树是2*i,右子树是2*i+1。

堆分为最大堆与最小堆。

1.最大堆中所有父节点都比左子树、右子树大,比如已知序列,画成堆就是: 

a46d6d715befd69c7e7b1455dbf13ab.png

所以已知序列是个最大堆。

2.最小堆中所有父节点都比左子树、右子树小,比如{32,50,60,70,100,65},画成堆: 

1523797fcbf5642fe53bc2cf410c999.png

符合以上两种情况的序列就是堆

Atas ialah kandungan terperinci 堆序列怎么判断. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn