C语言实现堆、栈、B+树、红黑树数据结构
(1)理解堆、栈、B+树、红黑树这四种数据结构的基本原理。 (2)用C语言实现这四种数据结构,并且每种数据结构至少完成一种其对应的功能。 (1)堆的性质:堆是具有以下性质的完全二叉树,每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。在数据结构中,我们将堆的逻辑结构映射到数组中存储。在数组中,堆中节点的索引有如下定义:大顶堆:arr[i] >= arr[2i+1] && arr[i] >= arr[2i+2]小顶堆:arr[i] <= arr[2i+1] && arr[i] <= arr[2i+2]这个定义在进行堆排序时需要经常用到。 (2)堆排序的性质:堆排序的主要思想是将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了(3)堆排序的实现步骤:构造初始堆。将给定无序序列构造成一个
下载地址
用户评论