zoukankan      html  css  js  c++  java
  • #include<stdio.h>
    #include<stdlib.h>
    #define MAXSIZE 65535
    
    struct Heap {
        int *data;
        int size;
        int capacity;
    };
    typedef struct Heap *MaxHeap;
    
    void fix(MaxHeap mh, int parent);
    
    void swap(int *data, int i, int j) {
        int tmp;
        tmp = data[i];
        data[i] = data[j];
        data[j] = tmp;
    }
    
    void Print(MaxHeap mh) {
        int i;
        for(i=1;i<=mh->size;i++) {
            printf("%d ", mh->data[i]);
        }
        printf("
    ");
    }
    
    MaxHeap createMaxHeap(int maxsize) {
        int n, item, i;
        printf("nums: 
    ");
        scanf("%d", &n);
        MaxHeap mh = (MaxHeap)malloc(sizeof(struct Heap));
        mh->data = (int*)malloc(sizeof(int)*maxsize);
        mh->size = n;
        mh->capacity = maxsize;
        mh->data[0] = MAXSIZE;
        printf("please input item: 
    ");
        for(i=1;i<=mh->size;i++) {
            scanf("%d", &mh->data[i]);
        }
        for(i=mh->size/2;i>=1;i--) {
            fix(mh, i);
        }
        return mh;
    }
    
    void fix(MaxHeap mh, int parent) {
        int child = 2*parent;
        while(child<=mh->size) {
            if(child<mh->size && (mh->data[child] < mh->data[child+1])) child++;
            if(mh->data[child] <= mh->data[parent]) break;
            else {
                swap(mh->data, child, parent);
                parent = child;
                child = child*2;
            }
        }
    }
    
    int main() {
        MaxHeap mh;
        mh = createMaxHeap(20);
        Print(mh);
        return 0;
    }
  • 相关阅读:
    angularjs加载html
    git 使用
    图片压缩原理讲解很通透
    angularjs 实现多个图片上传及预览
    HTML 空格转义符的用法
    docker-volumes
    docker-管理数据
    docker-代理服务器
    docker-none
    docker-macvlan
  • 原文地址:https://www.cnblogs.com/hueralin/p/12103625.html
Copyright © 2011-2022 走看看