1. 二叉树的顺序结构(堆实现)
普通的二叉树不适合用数组存储,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。在实际中,通常将 堆(一种二叉树) 使用顺序结构的数组来存储。
需要注意的是,这里的堆和操作系统虚拟进程地址空间中的堆是不同的,一个是数据结构,一个是操作系统中管理内存的一块区域分段。
1.1 堆的概念与结构
如果有一个关键码的集合 K = {k0,k1, k2,…,kn-1}。将它的所有元素,按照完全二叉树的顺序存储方式存储在一个一维数组中,并满足:父亲节点小于孩子节点,则称为 小堆;父亲节点大于孩子节点,则称为 大堆。将根节点最大的堆叫作 最大堆或大根堆,根节点最小的堆叫做 最小堆或小根堆。
堆的性质:
(1)堆中某个节点的值总是不大于或不小于其父节点的值。
(2)堆总是一棵完全二叉树。
1.2 堆的实现
后续补上(doge)