优先队列什么叫优先级队列?优先级队列和队列有什么相同之处和不同之处?
数据结构中优先级队列和平衡二叉树的区别
优先队列指的是出队的是优先级最高的元素,一般用堆实现,这个堆机器实现时逻辑结构是完全二叉树,一般根结点的权值大于或者小于子树根的权值
平衡二叉树是用于查找的二叉排序树,要求左右子树高度差绝对值不超过1,并且左子树小,右子树大C语言实现一个优先队列
# include "stdio.h"
# include "malloc.h"
# include "stdlib.h"
typedef struct Queue
{
int data;
int Priority;
Queue * Next;
}* PQUEUE;
bool insert(PQUEUE p,int i, int j);
bool pop(PQUEUE p);
void sort(PQUEUE p);
int length = 0;
PQUEUE pT;
int main(void)
{
PQUEUE pH = (PQUEUE)malloc(sizeof(Queue));
insert(pH, 75, 8);
insert(pH, 54, 4);
insert(pH, 75, 6);
insert(pH, 23, 5);
insert(pH, 81, 4);
insert(pH, 65, 3);
insert(pH, 43, 4);
insert(pH, 34, 2);
sort(pH);
pop(pH);
pop(pH);
pop(pH);
pop(pH);
pop(pH);
pop(pH);
pop(pH);
pop(pH);
return 0;
}
bool insert(PQUEUE p,int i, int j)
{
if(i>= 0 && i<= 100 && j>=0 && j<=100)
{
PQUEUE pNew = (PQUEUE)malloc(sizeof(Queue));
if(length == 0)
{
pT = NULL;
}
if(pT == NULL)
{
pT = p;
}
if(NULL == pNew)
{
printf("动态内存分配失败~!");
exit(-1);
}
pNew->data = i;
pNew->Priority = j;
pT->Next = pNew;
pNew->Next = NULL;
pT = pNew;
length++;
return true;
}
return false;
}
PQUEUE p2;
bool pop(PQUEUE p)
{
if(length != 0)
{
p2 = p;
p = p->Next;
printf("%d,", p->data);
printf("%d
", p->Priority);
p2->Next = p->Next;
length--;
return true;
}
return false;
}
void sort(PQUEUE p)
{
if(length != 0)
{
PQUEUE w,q;
int i, j, t1,t2;
for(i=0,w=p->Next; i < length-1; ++i,w = w->Next)
{
for(j=i+1,q=w->Next; j < length; ++j,q = q->Next)
{
if(w->Priority < q->Priority)
{
t1 = w->data;
w->data = q->data;
q->data = t1;
t2 = w->Priority;
w->Priority = q->Priority;
q->Priority = t2;
}
}
}
}
return;
}
/*
都满足你的要求了,以上是使用链表结构的队列
*/什么叫优先级队列?优先级队列和队列有什么相同之处和不同之处?
优先级队列是带有优先级的队列;
相同之处:对优先级相同的元素和普通队列一样遵循“先进先出”的原则、
不同之处:在于优先级队列的出队列操作不是把队头元素出队列,而是把队列中优先级最高的数据元素出队列。
LayerStack(成立于2017年),当前正在9折促销旗下的云服务器,LayerStack的云服务器采用第 3 代 AMD EPYC™ (霄龙) 处理器,DDR4内存和企业级 PCIe Gen 4 NVMe SSD。数据中心可选中国香港、日本、新加坡和洛杉矶!其中中国香港、日本和新加坡分为国际线路和CN2线路,如果选择CN2线路,价格每月要+3.2美元,付款支持paypal,支付宝,信用卡等!...
如今我们还有在做个人网站吗?随着自媒体和短视频的发展和兴起,包括我们很多WEB2.0产品的延续,当然也包括个人建站市场的低迷和用户关注的不同,有些个人已经不在做网站。但是,由于我们有些朋友出于网站的爱好或者说是有些项目还是基于PC端网站的,还是有网友抱有信心的,比如我们看到有一些老牌个人网站依旧在运行,且还有新网站的出现。今天在这篇文章中谈谈有网友问关于个人网站备案的问题。这个也是前几天有他在选择...
vinahost怎么样?vinahost是一家越南的主机商家,至今已经成13年了,企业运营,老牌商家,销售VPS、虚拟主机、域名、邮箱、独立服务器等,机房全部在越南,有Viettle和VNPT两个机房,其中VNPT机房中三网直连国内的机房,他家的产品优势就是100Mbps不限流量。目前,VinaHost商家发布了新的优惠,购买虚拟主机、邮箱、云服务器、VPS超过三个月都有赠送相应的时长,最高送半年...
优先队列为你推荐
RFILCM是什么意思?请详解逗号运算符在C语言中逗号运算符有什么用呢?ucosiiucosii是什么?里面的OS是指什么?在看正点原子给的stm32f407开发指南的时候看到这个,什么意思?色温图色温是什么意思?色温图表微店是什么微店和微商有什么区别呢微信收费微信平台是否要收费如何收费wifi快速破解器电脑版wifi密码破解破解器怎么快速破解密码java商城javaweb 网上商城项目适合什么程度的学生做移动硬盘提示格式化急!!移动硬盘提示:需要格式化才可以使用 怎么办??3d规则福利彩票3D的中奖规则
购买域名 西安域名注册 vps是什么 代理域名备案 堪萨斯服务器 sugarsync 台湾谷歌网址 个人空间申请 权嘉云 idc资讯 免费高速空间 美国网站服务器 免费智能解析 in域名 drupal安装 超级服务器 wordpress中文主题 如何登陆阿里云邮箱 服务器硬件配置 网络速度 更多