博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用优先级队列实现先进先出队列;
阅读量:6333 次
发布时间:2019-06-22

本文共 1374 字,大约阅读时间需要 4 分钟。

代码:

#include "iostream"#define MAX 0x7fffffffusing namespace std;int B[20],heap_size=0;int counter=0;int parent(int i){    return i/2;}int left(int i){    return 2*i;}int right(int i){    return 2*i+1;}void decrease_Key(int A[],int i,int key){    int temp;    A[i]=key;    while(i>1&&A[parent(i)]>A[i]){        temp=A[i];        A[i]=A[parent(i)];        A[parent(i)]=temp;        i=parent(i);    }}void insert_MinHeap(int A[],int key){    heap_size++;    A[heap_size]=MAX;    decrease_Key(A,heap_size,key);}void minHeapify(int A[],int i){    int l,r;    l=left(i);    r=right(i);    int smallest;    if(l<=heap_size&&A[i]>A[l])        smallest=l;    else         smallest=i;    if(r<=heap_size&&A[smallest]>A[r])        smallest=r;    int temp;    if(smallest!=i){        temp=A[i];        A[i]=A[smallest];        A[smallest]=temp;        minHeapify(A,smallest);    }}int extract_MinHeap(int A[]){    int x=A[1];    A[1]=A[heap_size];    heap_size--;    minHeapify(A,1);    return x;}void enQueue(int A[],int data){    counter++;    B[counter]=data;    insert_MinHeap(A,counter);}int deQueue(int A[]){    int i=extract_MinHeap(A);    return B[i];}int m=0;int  add(){    m++;    return m;}void main(){    int A[20];    enQueue(A,12);    enQueue(A,45);    enQueue(A,34);    cout<
<

 

转载于:https://www.cnblogs.com/593213556wuyubao/archive/2012/12/17/2821890.html

你可能感兴趣的文章
RH135-2-command-line-interface
查看>>
浅谈OS
查看>>
mac下开启docker API远程调用
查看>>
tar 命令的详解
查看>>
Cisco路由器安全配置
查看>>
第十次作业
查看>>
给定一个字符串s,返回去掉子串"mi"后的字符串。
查看>>
Nginx 外的另一选择,轻量级开源 Web 服务器 Tengine 发布新版本
查看>>
Wrod中超链接的一些技巧
查看>>
我的友情链接
查看>>
IP_VFR-4-FRAG_TABLE_OVERFLOW【cisco设备报错】碎片***
查看>>
Codeforces Round #256 (Div. 2) D. Multiplication Table 【二分】
查看>>
ARM汇编指令格式
查看>>
HDU-2044-一只小蜜蜂
查看>>
HDU-1394-Minimum Inversion Number
查看>>
df -h 卡住
查看>>
第七天1
查看>>
[转] createObjectURL方法 实现本地图片预览
查看>>
JavaScript—DOM编程核心.
查看>>
JavaScript碎片
查看>>