关于堆顺序存储操作的5种算法

关于堆顺序存储操作的5种算法

ID:17990850

大小:20.50 KB

页数:5页

时间:2018-09-12

关于堆顺序存储操作的5种算法_第1页
关于堆顺序存储操作的5种算法_第2页
关于堆顺序存储操作的5种算法_第3页
关于堆顺序存储操作的5种算法_第4页
关于堆顺序存储操作的5种算法_第5页
资源描述:

《关于堆顺序存储操作的5种算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、#include #include typedef int elemType;/************************************************************************//*                    以下是关于堆顺序存储操作的5种算法                 *//**********************************************************************

2、**//* 定义堆的顺序存储类型 */struct heap{    elemType *heap;        /* 定义指向动态数组空间的指针 */    int len;            /* 定义保存堆长度的变量 */    int maxSize;        /* 用于保存初始化时所给的动态数组空间的大小 */};/* 1.初始化堆 */void initHeap(struct heap *hbt, int ms){    /* 检查ms的值是否有效 */    if (ms <= 0){   

3、     printf("数组长度参数非法!");        exit(1);    }        /* 动态分配存储的数组空间 */    hbt->heap = malloc(ms * sizeof(elemType));        if (hbt->heap == NULL){        printf("空间分配失败!");        exit(1);    }    /* 设置maxSize域和len域的值 */    hbt->maxSize = ms;    hbt->len = 0;

4、    return;}/* 2.清除堆 */void clearHeap(struct heap *hbt){    if5.1-9,,services,andmakethecitymoreattractive,strengtheningpublictransportinvestment,establishedasthebackboneoftheurbanrailtransitmulti-level,multi-functionalpublictransportsystem,thusprotectingthereg

5、ionalpositionandachieve (hbt->heap != NULL){        free(hbt->heap);        hbt->heap = NULL;        hbt->len = 0;        hbt->maxSize = 0;    }    return;}/* 3.检查一个堆是否为空 */int emptyHeap(struct heap *hbt){    if (0 == hbt->len){        return 1;    }else{      

6、  return 0;    }}/* 4.向堆中插入一个元素 */void insertHeap(struct heap *hbt, elemType x){    int i;    /* 堆满时数组空间扩展为原来的2倍,       原内容被自动拷贝到p所指向的存储空间中*/    if (hbt->len == hbt->maxSize){        elemType *p;        p = realloc(hbt->heap, 2 * hbt->maxSize * sizeof(elemType)

7、);        if (p == NULL){            printf("存储空间分配失败!");            exit(1);        }        hbt->heap = p;        /* 堆数组空间指向新空间 */        hbt->maxSize = 2 * hbt->maxSize;        /* 修改数组空间的大小 */    }    /* 向堆尾添加新元素 */    hbt->heap[hbt->len] = x;    hbt->len++;

8、    /* 用i指向待调整元素的位置,初始指向新元素所在的堆尾位置 */    i = hbt->len - 1;    /* 寻找新元素的最终位置,每次使双亲元素下移一层 */5.1-9,,services,andmakethecitymoreattractive,strengtheningpublictransportinvestment

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。