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

本文共 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

你可能感兴趣的文章
ActiveMQ消息队列介绍(转)
查看>>
web前端知识体系小结(转)
查看>>
从windows server的文件服务到分布式文件服务(五)
查看>>
由IDC机房测试谈主动工作教学实战案例!
查看>>
爱因斯坦计划最新进展(201710)
查看>>
MariaDB10 多源复制搭建演示
查看>>
HAProxy Nginx LVS Apache总结篇
查看>>
助你心想事成的三种力
查看>>
双十一达到马云预期了吗?
查看>>
习惯的力量之二窗户上的洞
查看>>
什么是你的核心竞争力之七弱点让你闪光
查看>>
惠普10亿美元锻造Helion云品牌
查看>>
拨开云计算迷雾,助力企业业务创新
查看>>
[C# 开发技巧系列]如何动态设置屏幕分辨率
查看>>
Exchange 2013 五个接收连接器功能与解释
查看>>
位图和SVG用法比较
查看>>
响应式设计(Response Web Design)实践
查看>>
Exchange 2010无法创建DAG第二个成员
查看>>
Skype for Business Server 2015-04-前端服务器-4-准备Active Directory
查看>>
52.本地VMware环境虚拟机的异地(Azure)容灾(下)
查看>>