美文网首页
小顶堆(MinHeap) 中的路径

小顶堆(MinHeap) 中的路径

作者: 日常表白结衣 | 来源:发表于2017-08-10 16:18 被阅读0次
/*  堆中的路径  */

#include<stdio.h>
#include<stdlib.h>

#define MAXN 1001
#define MINH -1

int main()
{
    int heap[MAXN] = {0};
    int size=0;
    int Data=0;
    int j, i;
    int arr[]={10,26,46,23,24};

    heap[0]=MINH;

    for(int k=0;k<5;k++){
        if (*(heap + size) != MAXN) {
            for (i = ++size; arr[k]< *(heap + i / 2); i /= 2)
                *(heap + i) = *(heap + i / 2);
            *(heap + i) = arr[k];
        }
    }

    for(int m=0;m<6;m++){
        printf("%d\n", heap[m]);
    }
    
    printf("please enter Data:\n");
    scanf_s("%d", &Data);

    for (j = 1; j<MAXN; j++) {
        if (heap[j] == Data)    break;
        else continue;
    }
    if (j == MAXN)  printf("ERROR!\n");
    else {
        while (j>1) {
            printf("%d->", heap[j]);
            j /= 2;
        }
        printf("%d", heap[1]);
    }

    system("pause");

    return 0;
}

输出示例

-1
10
23
46
26
24
please enter Data:
26
26->23->10请按任意键继续. . .

相关文章

  • 小顶堆(MinHeap) 中的路径

    输出示例

  • libevent中的小顶堆

    堆中某个结点与其父结点、左子树以及右子树数组下标的关系 从数组下标为1的位置开始存储堆: 从数组下标为0的位置开始...

  • 堆--求中位数

    针对动态数据,求排序后处于中间的数据思路:维护两个堆,一个大顶堆,一个小顶堆。大顶堆中存储前半部分数据,小顶堆中存...

  • 堆排序

    小顶堆

  • 剑指offer 数据流中的中位数

    建立大顶堆和小顶堆

  • 堆--Top K

    求数组中前k大的数据思路:维护一个数据大小为k的小顶堆,循环遍历数组,如果比堆顶元素大,我们就把堆顶元素删除,并且...

  • 堆的应用

    堆的应用一:优先级队列 将优先级的之分的数据存入堆中(小顶堆或者大顶堆),堆顶即优先级最搞的数据,当需要的时候直接...

  • 查找算法:小顶堆、二叉树

    小顶堆 PriorityQueue\DelayedWorkQueue\PriorityBlockingQueue小...

  • 任务调度

    主要有3种方案:数据库扫表;小顶堆;时间轮。 数据库扫表 延迟比较大 小顶堆 首先维持一个小顶堆,即最快需要执行的...

  • 大顶堆:堆中每个节点的值都大于等于其子节点中每个节点的值。本文内容以大顶堆为前提。 小顶堆:堆中每个节点的值都小于...

网友评论

      本文标题:小顶堆(MinHeap) 中的路径

      本文链接:https://www.haomeiwen.com/subject/jsihrxtx.html